MongoDB:如何获取包含最接近给定数字

时间:2015-10-01 06:24:42

标签: mongodb mongodb-query

鉴于以下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的文档。

1 个答案:

答案 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