2016-01-24 2 views
0

У меня есть следующие схемы документаКак обновить определенный поддокумент с помощью мангуста. (3 уровня глубокие)

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 без сохранения всего документа ,

Думаю, мне нужно будет изменить определение схемы. * Я действительно новичок в mongoose и mongoDB. так что будьте осторожны;)

+0

Ответ должен быть в мангустов коде. – TBE

ответ

2

С точечной нотации.

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

или

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

Что делать, если я хочу увеличивать счетчик в 'menu.1' и' menu.2'? позволяет сказать, что у меня есть массив этих элементов. – TBE

+0

Как я могу достичь этого с помощью мангуста? – TBE

+0

[обновление мангуст] (http://mongoosejs.com/docs/api.html#model_Model.update) , если я вас правильно: 'Model.update ({_ ID: mongoose.Schema.Types.ObjectId (» ...)}, {$ inc: {"menu.1.soldCounter": 1, "menu.2.soldCounter": 1, ...}}) ' – Kealman

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