我需要将数组中的值拉到另一个数组中,但它不起作用。 我有一份文件公司:
{
idRegister: String,
employeeName: String,
markers: [Marker],
...
}
员工:
{
tag: String
...
}
标记:
db.company.update(
{
$and:
[
{
_id: "8qmypja88nbuoedsi"
},
{
'employee.idRegister': "567.567"
}
]
},
{
$pull:
{
'employees.markers.tag':
{
$elemMach:
{
"ghj-5675"
}
}
}
}});
所以我尝试了查询:
"writeError" : {
"code" : 2,
"errmsg" : "unknown top level operator: $elemMatch"
}
但是我得到了错误:
{{1}}
任何人都知道如何拉出特定标签?在我写这篇文章之前,我尝试过没有$ elemMatch的其他查询,但也没有成功。
答案 0 :(得分:0)
{ $pull: { fruits: { $in: [ "apples", "oranges" ] }, vegetables: "carrots" } },
所以在你的情况下
$pull:{ 'employees.markers':{"tag":"ghj-5675"}}
答案 1 :(得分:0)
GOT IT!
我应该指定要进行更新的数组项,所以我做了:
db.company.update({"_id" : "8qmypja88nbuoedsi", 'employees.idRegister': "567.567"},
{
$pull:
{
'employees.$.markers':
{
$in:
[
{tag: "ghj-5675"}
]
}
}
});
感谢帮助@ profesor79