Я работал над извлечением полей value всех записей и вычитал его из следующего значения записи.Вот как выглядят мои записи:
{
"name":"abc",
"value":10
},
{
"name":"xyz",
"value":20
},
{
"name":"pqr",
"value":30
}
И я прошел через эти запросы, чтобы достичь этого, но не получил желаемого результата.
Запрос:
db.myc.aggregate([{
$unwind: "$value"
}, {
$group: {
_id: "$name",
value1: {
$first: "$value"
},
value2: {
$last: "$value"
},
}
}, {
$project: {
Output: {
$subtract: ["$value1", 10]
}
}
}]);
Получил вывод наподобие:
{ "_id" : "abc", "Output" : 0 }
{ "_id" : "xyz", "Output" : 10 }
{ "_id" : "pqr", "Output" : 20 }
Требуемый вывод, который я искал, первая запись значение должно остаться таким же, что равно 10, а значение следующей записи (20) должно быть вычтено изтретье значение записи (30).Так что все значения полей останутся 10. (Входные данные всегда будут иметь 10 различий со следующими данными).
Может кто-нибудь, пожалуйста, дайте мне знать, как этого достичь ???