2012-01-16 2 views
2

Я пытаюсь выполнить команду, как это в мангуста:Mongoose ошибки позиционного оператора

Song.update({url: s.url, "playlist.playlist_id": pl._id}, {$set: {"playlist.$.position": 505050}}, function(er, da) { 
            console.log("song on playlist lets change position"); 
            console.log(er); 
            console.log(da); 
}); 

однако я получаю сообщение об ошибке: [Ошибка типа: Невозможно вызвать метод «путь» неопределенных]

Я предполагая, что это связано с мангустом и оператором $, потому что он работает на консоли mongodb.

Любые идеи?

ответ

0

У меня была аналогичная проблема с мангустом, возможно, отредактируйте свой пост, чтобы увидеть схему. Я исправил мою проблему, выполнив следующие изменения в моей схеме: <

var Result = new Schema({ 

    id    : Number, 
    detailResult : [detailRef], 
    simpleResult : [{id: ObjectId, unit: String, value: Number, completed: Boolean}] 
}); 

Обратите внимание на рабочем примере (ниже), я добавил new mongoose.Schema()

var Result = new Schema({ 

    id    : Number, 
    detailResult : [detailRef], 
    simpleResult : [new mongoose.Schema({id: ObjectId, unit: String, value: Number, completed: Boolean})] 
}); 

Вы, вероятно, нужно сделать эту модификацию в плейлист embeddedDoc в вашей схеме.

+0

Это работает? – Lion789

+0

Полтора года назад. С тех пор Мангуст мог измениться. – guiomie

Смежные вопросы