1

Я новичок в MongoDb и пытаюсь найти в нем некоторые базовые вычисления. У меня есть коллекция, известково, как показано нижеКак вычислить поле во всех документах на основе значения конкретного документа в одной коллекции?

{ "_id" : 1, "value" : 10} 
{ "_id" : 2, "value" : 20} 
{ "_id" : 3, "value" : 20} 
{ "_id" : 4, "value" : 30} 
{ "_id" : 5, "value" : 30} 
{ "_id" : 6, "value" : 30} 

Я хочу, чтобы добавить значение «_id»: 1 для всех значений поля документов в этой коллекции и создать новое поле с расчетным результатом. Поэтому конечный результат, который я ищу, выглядит следующим образом.

{ "_id" : 1, "value" : 10, "sumup":20 } 
{ "_id" : 2, "value" : 20, "sumup":30 } 
{ "_id" : 3, "value" : 20, "sumup":30 } 
{ "_id" : 4, "value" : 30, "sumup":40 } 
{ "_id" : 5, "value" : 30, "sumup":40 } 
{ "_id" : 6, "value" : 30, "sumup":40 } 

ответ

0

Вы могли бы попробовать это в Монго оболочки:

db.collection.aggregate([ 
    { 
     "$project": { 
      "value": 1, 
      "sumup": { 
       "$add": [ "$value", (db.collection.findOne({"_id": 1})).value ] 
      } 
     } 
    } 
]) 
Смежные вопросы