Можно ли извлечь только встроенные документы из модели в Mongoose? - PullRequest
0 голосов
/ 14 января 2012

Я хотел бы выполнить запрос к модели, но возвращать только те внедренные документы, которые соответствуют запросу.Рассмотрим следующее ...

var EventSchema = new mongoose.Schema({
    typ : { type: String },
    meta : { type: String }
});

var DaySchema = new mongoose.Schema({
    uid: mongoose.Schema.ObjectId,
    events: [EventSchema],

    dateR: { type: Date, 'default': Date.now }

});

function getem() {
    DayModel.find({events.typ : 'magic'}, function(err, days) {
         // magic. ideally this would return a list of events rather then days    
    });

}

Эта операция поиска вернет список документов DayModel.Но что мне действительно нравится, так это список только EventSchemas.Возможно ли это?

1 Ответ

5 голосов
/ 14 января 2012

Невозможно получить объекты Event напрямую, но вы можете ограничить, какие поля возвращает ваш запрос, например:

DayModel.find({events.typ : 'magic'}, ['events'], function(err, days) {
   ...
});

Тем не менее, вам все равно нужно будет просмотреть результаты, чтобы извлечь фактические внедренные поля из документов, возвращаемых запросом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...