2017-05-04 77 views
0

如何在JSON數組中推送新的鍵和值?如何在MongoDB中推送新的鍵和值在JSON數組中?

我試過我在更新查詢中使用了push關鍵字,但我得到了不同的輸出。我用:

db.users.updateOne({"name":"viki"},{$push{"address.district":"thambaram"}}) 

我有這個文件:

{ "_id" : ObjectId("58934f10c7592b1494fd9a4d"), "name" : "viki", "age" : 100, "subject" : [ "c", "node.js", "java" ], "address" : { "city" : "chennai", "state" : "tamilnadu", "pincode" : "123" } } 

我想在地址JSON數組添加"district":"thambaram"

我需要這樣的:

{ "_id" : ObjectId("58934f10c7592b1494fd9a4d"), "name" : "viki", "age" : 100, "subject" : [ "c", "node.js", "java" ], "address" : { "city" : "chennai", "state" : "tamilnadu", "pincode" : "123","district":"thambaram"} } 
+0

你得到的錯誤是什麼 – FallAndLearn

+0

你不能使用'$ push'操作符,因爲這不是一個數組。您可以使用簡單的嵌套對象屬性分配。 –

+0

我得到這個輸出:{「_id」:ObjectId(「58934f10c7592b1494fd9a4d」),「name」:「viki」,「age」:100,「subject」:[「c」,「node.js」,「java」 ],「address」:{「city」:「chennai」,「state」:「tamilnadu」,「pincode」:「123」,「district」:[「thambaram」]}}但我需要{「_id」: ObjectId(「58934f10c7592b1494fd9a4d」),「name」:「viki」,「age」:100,「subject」:[「c」,「node.js」,「java」],「address」:{「city」 「chennai」,「州」:「tamilnadu」,「pincode」:「123」,「區」:「thambaram」}} – vigneshRavi

回答

1

使用$set

db.users.updateOne({"name":"viki"},{$set:{"address.district":"thambaram"}}) 

這應該有效。

$push運算符將指定的值附加到數組。在你的情況下,你應該使用$set

相關問題