0
在Mongoose中可能執行查詢,其中兩個搜索參數是ObjectIds(一個是ref)嗎?Mongoose查詢使用多個ObjectIds(與'ref')
例如,假設下面的模式:
var ObjectId = mongoose.Schema.ObjectId;
var fooSchema = new mongoose.Schema({
...
});
schemas.Foo = mongoose.model("Foo", fooSchema, "foo");
var barSchema = new mongoose.Schema({
fooId : { type: ObjectId, ref: "Foo" },
...
});
schemas.Bar = mongoose.model("Bar", barSchema, "bar");
我希望這個工作:
schemas.Bar.find({
_id : mongoose.Types.ObjectId(req.params.barId),
fooId : mongoose.Types.ObjectId(req.params.fooId)
},
function(err, result)
{
...
}
);
但它返回一個空集。奇怪的是,如果我刪除其中一個或另一個標準,它的工作原理。
schemas.Bar.find({
_id : mongoose.Types.ObjectId(req.params.barId)
}, ...);
或...
schemas.Bar.find({
fooId : mongoose.Types.ObjectId(req.params.fooId)
}, ...);
我在做什麼錯在這裏?我可以在數據庫中看到原始數據,但如果我在同一個查找中同時使用兩個ObjectId,查詢總是空的。
非常感謝