2016-06-06 4 views
0

Просьба предложить мне, как вставить объект внутри объекта. Образец коллекцииMongoDB вставить объект внутри объекта

{ 
"_id" : ObjectId("57556cec9d66a6c26b19ce06"), 
"email" : "[email protected]", 
"password" : "1235466", 
"typeOfUser" : 1, 
"userDetails" : { 
    "firstName" : "David", 
    "lastName" : "Beckham", 
    "contactNumber" : "12345678989" 
} 

}

Я хотел бы добавить еще один объект называется объект адрес внутри этого. что-то вроде этого

{ 
"_id" : ObjectId("57556cec9d66a6c26b19ce06"), 
"email" : "[email protected]", 
"password" : "1235466", 
"typeOfUser" : 1, 
"userDetails" : { 
    "firstName" : "David", 
    "lastName" : "Beckham", 
    "contactNumber" : "12345678989" 
    "address" : { 
     "country" : "", 
     "state" : "" 
    } 
    } 

}

Пожалуйста, предложите мне о том, как вставить значения для адреса объекта ..

То, что я пытался?

db.getCollection ('PetCare'). Update ({"contactNumber": "12345678989"}, {"$ push": {"адрес": {"страна": "Индия", "город": " Blore "}}})

но не обновляет ..

ответ

1

Попробуйте следующее:

db.getCollection('PetCare').update({"userDetails.contactNumber":"12345678989"},{"$set":{"userDetails.address":{"country":"India","city":"Blore"}}}) 
+0

Это 100% право .. (userDetails.) Мне не хватало этого значения .. – Rakesh

0

$push оператор вы используете предназначен для добавления значения в массив, так что не будет получить работу здесь.

Если Вы желаете обновить документ с новой собственности, вы хотите использовать $set оператор:

db.test.update({contactNumber: "xxx"}, {$set: {address: {country: "India", city: "Blore"}}}) 
Смежные вопросы