【发布时间】:2018-06-03 02:20:18
【问题描述】:
如何从 parentHierarchy 中 userId = "fadd66e5-97b9-4ae0-86ca-7922bf9d1da4" 且 organizationId = "d44a90c0-3f04-4dbd-97f0-cd1be3baf2de" 的文档中删除数据。
这是文档。
[ {
"name": "ABC",
"organization": [
{
"organizationId": "d44a90c0-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Admin",
"userId": "fadd66e5-97b9-4ae0-86ca-7922bf9d1da4"
},
{
"privelege": "Manager",
"userId": "fadd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
},
{
"organizationId": "d44a90c1-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Admin",
"userId": "fada66e5-97b9-4ae0-86ca-7922bf9d1da4"
},
{
"privelege": "Manager",
"userId": "fndd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
}
]
},
{
"name": "PQR",
"organization": [
{
"organizationId": "d44a90c0-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Admin",
"userId": "fadd66e5-97b9-4ae0-86ca-7922bf9d1da4"
},
{
"privelege": "Manager",
"userId": "fadd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
}
]
}]
输出文档应该采用这种格式(在这个组织ID“d44a90c0-3f04-4dbd-97f0-cd1be3baf2de”中没有父级)。
[ {
"name": "ABC",
"organization": [
{
"organizationId": "d44a90c0-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Manager",
"userId": "fadd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
},
{
"organizationId": "d44a90c1-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Admin",
"userId": "fada66e5-97b9-4ae0-86ca-7922bf9d1da4"
},
{
"privelege": "Manager",
"userId": "fndd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
}
]
},
{
"name": "PQR",
"organization": [
{
"organizationId": "d44a90c0-3f04-4dbd-97f0-cd1be3baf2de",
"parentHierarchy": [
{
"privelege": "Manager",
"userId": "fadd56e5-97b9-4ae0-86ca-7922bf9d1da4"
}
]
}
]
}]
我使用过这样的查询,但没有返回正确的数据。
var condition = {"organization.organizationId":condition.orgId,
"organization.parentHierarchy.userId": userdata[0]._id}
var update = {
"$pull":{"organization":
{"organizationId": condition.orgId,
"parentHierarchy":{"userId": userdata[0]._id}}}
}
db.collection('users').update(condition, update, {multi: true},
function(error, documents) {
if(error){
console.log("error in to update parentHierarchy");
}
else{
console.log("updated Documents");
}
})
【问题讨论】: