Mongodb 更新数组中的元素

Mongodb 更新数组中的元素,mongodb,Mongodb,假设我有一个对象: {town_id: 13, houses_data: [ {house_id: 5, price: 32, description: "thats a house"}, {house_id: 2, price: 12, description: "thats a house"} ] } 我想将id为5的房子的描述更新为“已售出”: 我尝试的是: 获取这些数据: twon1.houses_data 并尝试仅更新房屋数据,其中id=5 twon1.

假设我有一个对象:

{town_id: 13, houses_data: [
    {house_id: 5, price: 32, description: "thats a house"},
    {house_id: 2, price: 12, description: "thats a house"}
   ]
 }
我想将id为5的房子的描述更新为“已售出”:

我尝试的是:

获取这些数据:

 twon1.houses_data
并尝试仅更新
房屋数据
,其中
id=5

 twon1.houses_data.find({house_id: 5}).update(description: "sold");
但我得到了这个错误信息:

我错了什么?谢谢

您可以使用更新与给定查询匹配的第一个嵌入文档:

db.test.town.update({town_id: 13, "houses_data.house_id":5},
                    {$set: { "houses_data.$.description": "sold"}})
 twon1.houses_data.find({house_id: 5}).update(description: "sold");
 [object Object],[object Object] has no method 'find'
db.test.town.update({town_id: 13, "houses_data.house_id":5},
                    {$set: { "houses_data.$.description": "sold"}})