MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да запазя стойности с нулева дължина по време на фазата $unwind на сборния конвейер в Mongo?

Променете своя project етап в тръбопровода, както е показано по-долу:

projection stage прави следните две неща:

  • Ако масивът от елементи е null или does not exist , изчислява стойността на полето theitems като [] (празен масив.)
  • Следва проверка дали size от току-що изчислените items полето е 0 , ако е 0 , след което променя стойността си на масив с обект по подразбиране.

Код на етапа:

db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
           "items":{$cond:[
                          {$eq:[{$size:{$ifNull:["$items",[]]}},0]},
                          [{"quantity":0,"price":0}],
                          "$items"
                          ]}}},
{$unwind:"$items"},
...
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Предаване на допълнителни буркани към Spark чрез spark-submit

  2. MongoDB група по час

  3. Групов масив след размотаване и съвпадение

  4. MongoDB премахва всяка база данни

  5. Как мога да преглеждам или да потърся данни на MongoDB на живо?