我可以在MongoDB中的ObjectID之后删除对象吗?
例如我们有文件:
{
"_id" : ObjectId("5a05f209e479fa45b414d288"),
"name" : "example",
"availability" : null,
"users" : [
ObjectId("59cd1f9a71b8ad5f48eb74f6")
],
"lists" : [ {
"list" : "example list 2",
"_id" : ObjectId("5a05f21de479fa45b414d28f"),
"cards" : [
{
"name" : "example card 2",
"_id" : ObjectId("5a05f222e479fa45b414d292"),
"labels" : [
{
"_id" : ObjectId("5a05f209e479fa45b414d28c"),
"label" : {
"colour" : "#61BD4F",
"name" : "green"
}
}
]
}
]
}
]
"__v" : 0
}
我可以使用_id删除此对象吗?例如api nodejs中的方法findByIdAndRemove只删除这个对象吗?
{
"_id" : ObjectId("5a05f209e479fa45b414d28c"),
"label" : {
"colour" : "#61BD4F",
"name" : "green"
}
}
这个_id之后?
"_id" : ObjectId("5a05f209e479fa45b414d28c"),
答案 0 :(得分:0)
没有直接的方法可以在MongoDb中删除objectId之后的子文档。
对于这种情况,我使用下面的代码达到了预期的结果。
collectionName.update({"lists.cards._id": ObjectId("5a05f222e479fa45b414d292") }, { "$pull": { "lists.0.cards.0.labels": { "_id": ObjectId("5a05f209e479fa45b414d28c") } } });
使用点符号过滤数据库中的文档。
由于预期查询只返回一个文档,因此我使用零索引来访问所需的嵌套对象。