鉴于以下MongoDB文档......
{ "_id" : ObjectId("55e67b28010000880ca4c043"), "amount" : { "value" : 1.125, "currency" : "USD" } }
{ "_id" : ObjectId("55e897e60100009f0051da48"), "amount" : { "value" : 1.525, "currency" : "USD" } }
{ "_id" : ObjectId("55ea1b520100006d004e602a"), "amount" : { "value" : 1.825, "currency" : "USD" } }
如何获得amount.value
最接近2.0的文档(在这种情况下为1.825)?例如,我需要创建一个以数字作为输入的查询,并返回最接近指定数字的amount.value
的文档。
答案 0 :(得分:3)
您可以在两个查询中完成它。
providedValue = 1.34;
closestBelow = db.test.find({
"amount.value": {
$lte: providedValue
}
}).sort({
amount.value: -1
}).limit(1);
closestAbove = db.test.find({
"amount.value": {
$gte: providedValue
}
}).sort({
amount.value: 1
}).limit(1);
您可以查看此链接,了解更多详情 mongodb - Find document with closest integer value