2015-04-23 2 views
0

Как мы можем обновить значение для поля «Включено» в конфигурации по индексу 1 в массиве конфигураций в базе данных mongo?Как обновить значение поля в массиве в базе данных mongo?

Ниже приведены мои данные Json.

{ 
    "Configurations" : [ 
          { 
           "Configuration" : { 
            "Host" : "", 
            "Port" : "1521", 
            "Enabled" : "true"     
           } 
          }, 
          { 
           "Configuration" : { 
           "Host" : "", 
           "Port" : "", 
           "Enabled" : "true" 
           }         
          } 
         ], 
    "Description" : "Check Database Server"     
} 

Есть ли способ обновить значение для поля Enabled в Configuration? Как мы можем обновить значение для поля 'Enabled' в конфигурации по индексу 1 в массиве конфигураций в Mongodba?

Я хочу обновить значение поля 2-й конфигурации для параметра «Конфигурация».

+0

Пожалуйста, убедитесь, что только код помечен как код. – Peanut

+0

Возможный дубликат [Как удалить элемент из массива, который присутствует внутри объекта в Mongodb/mongoose] (http://stackoverflow.com/questions/29797688/how-to-delete-an-element-from-the -array-which-is-present-inside-an-object-in-mon) – Yogesh

+0

Индексы массивов обычно основаны на 0. И это напоминает мне вопрос MongoU ... –

ответ

2

А что-то вроде этого

db.collection.update({}, 
    { "$set": { "Configurations.1.Configuration.Enabled": false }} 
) 
+0

Да, я хочу что-то вроде этого, но что значение, которое мы должны передать ... в приведенном ниже коде. db.collection.update ('' .... '', {"$ set": {"Configurations.1.Configuration.Enabled": false}} ) –

+0

http://docs.mongodb.org/manual /reference/method/db.collection.update/ – styvane

0

Попробуйте это:

db.collection.update({ 
"Configurations": { 
    "$elemMatch": { 
     "Configuration.Port": "1521" 
    } 
} 
}, { 
"$set": { 
    "Configurations.$.Configuration.Enabled": "false" 
} 
}) 
Смежные вопросы