Mongoosejs在objectId的数组上找到
Mongoosejs find on array of 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); //and
A.find({b : {$in: new ObjectId("54e545fb6a0d90bb0772808b")}}, callback); //manually got this one value from db
var callback = function (err, data) {
console.log("----------------------");
if (err)
console.log(err);
else {
console.log(JSON.stringify(data, null, ''t'));
}
console.log("----------------------");
}
这两者似乎都不起作用。谢谢你的帮助。
假设arr是表示ObjectId:的字符串数组
A.find({b : {
$in: arr.map(function(o){ return mongoose.Types.ObjectId(o); })
}}, callback);
相关文章:
- 如何在映射数组中添加换行符
- javascript结合了数组和字典
- 需要帮助设置json数组
- 不能从angular2中的子组件指定父组件中的数组
- 使用JS将数组转换为json对象
- 数组在递归方法中设置为null
- knockoutjs可观察数组
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 将数组从PHP传递到Javascript
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- 在函数中添加数组元素的数值
- 无法通过数组映射绑定
- javascript中的数组出错
- 如何使用 node.js 比较两个 json 数组
- Javascript(Angular)从一个对象数组到第二个数组查找值
- Mongoosejs在objectId的数组上找到
- ObjectId数组将不会在没有错误的情况下填充
- 从ObjectId数组中删除ObjectId
- Mongodb/Mongoose:填充ObjectId数组(引用)
- 如何在数组中获取objectId的内容- Mongoose / NodeJs