mongoose.js 3: как сказать, что вложенный не является документом

Моя схема мангуста:

mongoose.Schema({
        title: 'string',
        items: [{
            uid: 'string',
            type: {type: 'string'},
            title: 'string',
            items: [{uid: 'string', type: {type: 'string'}, text: 'string'}]
        }]
    });

Как сообщить мангусту, что предметы (и предметы предметов) — это не документы, а просто вложенные объекты? Мне не нужно ни свойство _id, ни какая-либо функциональность документа для них, но я хочу определить их и ограничить схемой.

Достаточно ли _id: false?


person WHITECOLOR    schedule 27.09.2012    source источник


Ответы (1)


Встроенные массивы документов без собственной схемы (как показано выше) всегда будут иметь поле _id. Если вы хотите подавить _id, у них должна быть своя собственная схема, и вам нужно установить { _id: false } опцию в определении их схемы.

mongoose.Schema({
    title: 'string',
    items: [mongoose.Schema({
        uid: 'string',
        type: {type: 'string'},
        title: 'string',
        items: [mongoose.Schema({
            uid: 'string', 
            type: {type: 'string'}, 
            text: 'string'
        }, {_id: false})]
    }, {_id: false})]
});
person JohnnyHK    schedule 27.09.2012