另一个例子和用法可能是这样的:
{
"company": {
"location": {
"postalCode": "12345",
"Address": "Address1",
"city": "Frankfurt",
"state": "Hessen",
"country": "Germany"
},
"establishmentDate": "2019-04-29T14:12:37.206Z",
"companyId": "1",
"ceo": "XYZ"
},
"items": [{
"name": "itemA",
"unit": "kg",
"price": "10"
},
{
"name": "itemB",
"unit": "ltr",
"price": "20"
}
]
}
- 使用Mongodb查询删除ItemB的语句:
db.getCollection('test').update(
{"company.companyId":"1","company.location.city":"Frankfurt"},
{$pull : {"items" : {"name":"itemB"}}}
)
寻找:寻找与itemB相关的查询。
db.getCollection('test').find(
{"company.companyId":"1","company.location.city":"Frankfurt","items.name":"itemB"},
{ "items.$": 1 }
)
3.更新:针对itemB的更新查询:
db.getCollection('test').update
(
{"company.companyId":"1","company.location.city":"Frankfurt","items.name":"itemB"},
{ $set: { "items.$[].price" : 90 }},
{ multi: true });
$
[位置操作符]。 - Uday Hiwarale{_id: 777, someArray.name: "name1"}, {$pull: {"someArray.$.someNestedArray": {"name": "delete me"}}}
。但是如果您有更深层次的嵌套数组,则无法使用此方法,因为MongoDB仅支持一个$
符号。根据官方开发者的说法,多个$
符号的支持可能在2.9版本中可用。 - Melkor