Возможно ли в Mongoose выполнить запрос, в соответствии с которым двумя из параметров поиска являются ObjectIds (один из них является ref)?Mongoose Query с использованием нескольких 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)
}, ...);
Что я здесь делаю неправильно? Я вижу необработанные данные в базе данных, но запрос всегда пуст, если я использую оба объекта ObjectIds в одной и той же находке.
Большое спасибо