我正在使用猫鼬。
当我这样做时,它可以正常工作:
userModel.find({ $or:[
{first_name:"Bob"},
{last_name: "Marley"}
]
}, function(err, result){
if(err) //do something;
console.log(result);
});
但是当我使用_id作为表达式之一时,它只查找_id并且不关心其他表达式:
userModel.find({ $or:[
{_id: "56b426aa1d6c7a642ab1a52d"},
{last_name: "Marley"}
]
}, function(err, result){
if(err) //do something;
console.log(result);
});
回顾: 第一个例子是找到名字Bob或姓Marley。 但第二个例子只能找到我提供的确切id或null。
我做错了什么?
答案 0 :(得分:0)
MongoDB _id
字段是一种特殊类型的字段,需要先进行初始化,然后才能在查询中使用:
new Mongoose.Types.ObjectId("56b426aa1d6c7a642ab1a52d")
或
var ObjectId = require('mongoose').Types.ObjectId;
new ObjectId("56b426aa1d6c7a642ab1a52d");