mongodb-将查询结果推送到变量中

时间:2016-07-22 06:33:45

标签: mongodb

我正在尝试将查询结果推送/插入变量。它给了我以下两种情况的错误。但是,查询单独给出了正确的结果。只有在尝试将值推入变量时才会出错。
您能确定查询的错误吗?

var aggVal =db.zeroDimFacts.aggregate(
    {$group: {_id: '', maxi: {$max: "$_id"}}},
    {$project: {_id:0, maxe:"$maxi"}})
printjson(aggVal)

var ss = db.zeroDimFacts.find({},{_id:1}).sort({"_id": -1}).limit(1)
printjson(ss)

这两个代码都会出现类似的错误:

DBQuery: Agronomics.zeroDimFacts -> { "query" : { }, "orderby" : { "_id" : 1 } }

2 个答案:

答案 0 :(得分:0)

这可能不是获得最大价值的完美方式。但是,它仍然会继续给出正确的结果 如果有人可以提供/建议正确的方法,我会在两天后将其标记为答案。

经过长时间的试验n错误,我找到了答案。首先将值推送到数组中,数组的第0个元素将具有最大值。现在将该值推送到另一个变量。

var ss = db.zeroDimFacts.find({},{_id:1}).limit(1).sort({_id:-1}).toArray()
var vi =Number(ss[0]._id)
print(vi)

答案 1 :(得分:0)

使用聚合框架,您需要运行以下管道;

注意 - 管道应该是管道连接在一起的聚合运算符数组

var cursor = db.zeroDimFacts.aggregate([
    { "$group": { "_id": null, "maximumId": { "$max": "$_id" } } }
]);
var maximumId = cursor.toArray()[0]["maximumId"];
printjson(maximumId);