我在 Node.JS 之上使用带有 mongoskin 的 mongoDB。
我有一个图像列表(集合“图像”),对于每张图像,我想保存一个评论列表。
我相信 mongodb 的正确方法是在每个 Image 文档中使用评论列表。
问题 - 我不知道该怎么做。如何在文档中使用列表?以及如何对它们执行 CRUD?
非常感谢您的帮助。
没有直接的方法可以对嵌入式对象执行传统的 CRUD。您可以轻松地创建和阅读,但更新和删除,而且非常初级。您不能只选择一个嵌入对象;您只能选择父对象(具有_id 的对象)。嵌入对象列表是一个数组,其中对象是条目。
这就是您使用驱动程序的方式(mongoskin 只是顶部的薄层)
var id = new ObjectId();
var image = {_id: id, title:"some title".......}
collection.insert(image, {safe:true}, function(err, result) {
var comment = {title:'comment'}
collection.update({_id:id}, {$push:{comments:comment}}, {safe:true}, function(err, nrofUpdated) {
}
})
有用的链接