У меня есть следующие схемы:Mongoose совокупный матч вложен документ
var PostSchema = mongoose.Schema({
idol: { type: Schema.Types.ObjectId, ref: 'User' },
views: [ String ],
likes: [ String ],
...
});
var UserSchema = mongoose.Schema({
name: String,
email: String,
...
});
и у меня есть этот следующий совокупный запрос:
Post.aggregate([
{ $match : { '$idol.name' : new RegExp(query, 'gi') } },
{ $skip : page * 20 },
{ $limit : 20 }
], function(err, posts) {}
Этот код возвращает следующее сообщение об ошибке:
[MongoError: exception: bad query: BadValue unknown top level operator: $idol.name]
Есть ли способ сопоставить что-то из вложенного документа?
Спасибо.
Я знаю это. Мне просто нужно знать, есть ли способ заполнить структуру агрегации с помощью мангуста. –
К сожалению, это невозможно. Aggregate() - операция MongoDB, а populate() - абстракция Мангуста высокого уровня. Вызов populate() сродни вызову двух вызовов Mongo find(). Монго не может вступать в коллекцию сам по себе. –