所以我有一个包含项目数组的播放列表文档。现在我想在项目中添加一个投票数组,但我不知道该怎么做。目前这是我添加新项目的方式......
playlist_collection.update(
{"PlaylistName": playlistName},
{"$push": {items: newitem}},
function(error, playlist){
if( error ) callback(error);
});
我知道还有一些关于此的帖子,所以如果有一个很好的例子,那么复制就好了。
这是db
中的对象{ "PlaylistName" : "MyFirstPlaylist",
"_id" : ObjectId("4fe0c6570fb2321b39000001"),
"comments" : [ ],
"created_at" : ISODate("2012-06-19T18:35:03.462Z"),
"items" : [
{ "SongName" : "Test", "Location" : "/tmp/40dd4f78466c3c7171f1eaf448e8f1d6" }
]
}
答案 0 :(得分:0)
我最终使用了这个......
PlaylistProvider.prototype.addVoteToItem = function(, itemname, vote, callback) {
this.getCollection(function(error, collection) {
collection.findOne({'PlaylistName':playlistName}, function (err, playlist) {
if( err ) callback( err );
playlist.items.forEach(function (item) {
for (var prop in item) {
if (prop == 'SongName'){
if(item[prop] == itemname){
console.log("Found "+item[prop])
if( item.votes === undefined ) item.votes = [];
item.votes.push(vote)
collection.save(playlist)
callback(null, playlist)
break;
}
}
}
})
})
})
}