我正在尝试使用$ in运算符,我的代码如下所示:
var list = []
for(var x=0; x<board.members.length; x++) {
list.push(new ObjectId(board.members[x].toHexString()));
}
return User.find({_id: { $in: list}}).exec();
即使我的列表数组中有两个项目,结果集也只包含一个项目。但是,如果我按如下方式构造相同的查询:
return User.find({_id: { $in: [new ObjectId("5603d450951764890c6d013d"), new ObjectId("5603d450951764890c6d013f")]}}).exec();
然后结果集包含我期望的两个项目。我不确定为什么使用list变量,我无法检索正确的数据。非常感谢任何帮助。
更新:
我也尝试使用$ in运算符,如下所示,我仍然得到一个项目:
return User.find({_id: { $in: board.members}}).exec();