如何使用mongoose更新特定的子文档。 (3层深)

时间:2016-01-24 17:14:27

标签: node.js mongodb mongoose

我有以下文件计划

var restsSchema = new Schema({
    name: String,
    phoneNumber: String,
    menu: mongoose.Schema.Types.Mixed
});

和实际的简化文档如下:

{
    name: "Dominos Pizza"
    phoneNumber: "1800800800"
    menu:{
             "1":{
                  name: "Plain Pizza",
                  soldCounter: 0
               },
             "2":{
                  name: "Pizza with vegetables",
                  soldCounter: 0
                }
         }
}

我的问题是如何在不保存整个文档的情况下更新特定的soldCounter

我想我需要更改Scheme定义。 *我对mongoose和mongoDB真的很陌生。所以要温柔;)

1 个答案:

答案 0 :(得分:2)

带点符号。

db.collection.update({_id: ObjectId("...")}, {$set: {"menu.1.soldCounter": 1}});

db.collection.update({_id: ObjectId("...")}, {$inc: {"menu.1.soldCounter": 1}})