Mongoosejs在objectId数组上查找
Mongoosejs在objectId数组上查找
我已经努力尝试了几个小时,所以现在在这里发帖。我尝试在mongoose中使用find()操作符,找出是否有一个键与数组中的任何一个元素匹配,类似于《如何在Mongoose中执行id数组查询?》但是没有得到预期的结果。
这是我的模式,
var a = new mongoose.Schema({ b : { type : mongoose.Schema.ObjectId, ref: 'B' }, }); var A = mongoose.model('A', a);
现在我有一个数组arr[],其中包含类B的一些可能的对象id。即
arr = ["54e545fb6a0d90bb0772808b", "xxxxxxxxxxxxx", ...]
我想找到所有类型为A的文档,其中字段b与arr中的任何元素匹配。注意,arr是一个字符串数组,但b保存的是ObjectId。
到目前为止,我尝试过以下方法,
A.find({b : {$in: arr}}, callback); //和 A.find({b : {$in: new ObjectId("54e545fb6a0d90bb0772808b")}}, callback); //从数据库手动获取了这个值 var callback = function (err, data) { console.log("----------------------"); if (err) console.log(err); else { console.log(JSON.stringify(data, null, '\t')); } console.log("----------------------"); }
这两个都似乎不起作用。谢谢帮助。