我的文档就像这样
"page_elements" : [
{
"type" : "gallery",
"words" : [
"gallery",
"photos"
]
},
{
"type" : "cart",
"words" : [
"cart",
"shop"
]
},
{
"type" : "Privacy",
"words" : [
"privacy",
"policy",
"privacy policy"
]
},
{
"type" : "cart",
"words" : [
"cart",
"shopping cart",
"buy now",
"add to cart",
"add to basket"
]
}
错误地说,我已经两次更新了购物车。现在,我需要删除数组中的第一个购物车并保留文档的其余部分。
在这里,我需要删除
{
"type" : "cart",
"words" : [
"cart",
"shop"
]
}
我试过了..
db.ds_master_language_words.remove( { "page_elements.type" : "cart" } )
答案 0 :(得分:1)
您不想删除,您想要更新。 $unset将摆脱这个领域,你知道这个位置:
db.ds_master_language_words.update(
{ <your_document_id_match > },
{ $unset: { "page_elements.1": ""}}
)
这将在数组中设置为null,但现在可以使用$pull轻松删除:
db.ds_master_language_words.update(
{ <your_document_id_match > },
{ $pull: { "page_elements": null }}
)
另请参阅update
方法
http://docs.mongodb.org/manual/reference/method/db.collection.update/
答案 1 :(得分:0)
您可以使用$pull
为page_elements
提供与要删除的数组元素相匹配的值来执行此操作:
db.ds_master_language_words.update({}, {
$pull: {page_elements: {
"type": "cart",
"words": ["cart", "shop"]
}}})