我正在尝试将查询结果推送/插入变量。它给了我以下两种情况的错误。但是,查询单独给出了正确的结果。只有在尝试将值推入变量时才会出错。
您能确定查询的错误吗?
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 } }
答案 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);