gpt4 book ai didi

node.js - Mongoose 聚合方法不起作用

转载 作者:可可西里 更新时间:2023-11-01 10:24:51 26 4
gpt4 key购买 nike

我有这些行:

            Score.find({gameId : gameId}).exec(function(err,obj){
console.log("find length : " + obj.length);
});

Score.aggregate([
{$match: {gameId: gameId}}
], function (err, result) {
console.log('result is : ' + JSON.stringify(result));
console.log('is there any error : ' + err);
});

这些行的输出是

result is : []
is there any error : null
find length : 1

我不明白,为什么聚合的“匹配”方法不能按预期工作 - 找到所有匹配属性的文档。我添加了具有相同“正文”的 Score.find 以查明文档是否确实存在并且确实存在。

PS : {gameId: gameId} - 第一个 gameId 是属性名称,第二个是带有我要查找的 ID 的字符串值。


PS2:流畅的 api 具有相同的结果:

            Score.aggregate().match({gameId: gameId}).exec(function (err, result){
console.log('result is : ' + JSON.stringify(result));
console.log('is there any error : ' + err);
});

最佳答案

你应该将 gameId 字符串转换为 mongodb ObjectId

Mongoose

mongoose.Types.ObjectId(gameId)

mongodb原生方式

新的 ObjectId(gameId)

关于node.js - Mongoose 聚合方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034806/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com