我有一些数据存储在MongoDB数据库的集合中(我知道是哪个集合,所以只查看该集合),文档看起来像这样:
{ "_id" : ObjectId("52a93577dadf672b96062729"),
"owner" : "user1",
"files" : [
{ "IyzkmGh4YGD61Tc3TJjaEY17hDldH" : "rws" }
]
}
{ "_id" : ObjectId("52a92f43dadf672b96062725"),
"owner" : "user2",
"files" : [
{ "tUI7RtvpHZklptvHVYssamlgHP6xs" : "rws" },
{ "RsxRDQdXmHgmSLhMJ8tPxILxarruK" : "rws" },
{ "IyzkmGh4YGD61Tc3TJjaEY17hDldH" : "rw" },
{ "YA4to7HaB5Gm6JuZrwYrFit7IzvgO" : "rws" }
]
}
我正在尝试想出一种方法,以查找所有在它们内部的文件数组中具有特定字典键的文档。例如,对于样本数据,如果我使用字符串“ IyzkmGh4YGD61Tc3TJjaEY17hDldH”进行搜索,则希望两个样本都匹配,因为它们都具有在其文件列表中具有该键的字典。我应该如何执行此查询?我正在使用Python motor来访问MongoDB。原因是我希望在表示它们的文件不存在时删除这些条目。方案在我的掌握之中,我可以更改它以使这种搜索更加明智。
$exists
找到的文档的值,而是仅仅使用它来识别要从files
中$pull
的元素,就像你用它来识别要更新的文档一样。 - JohnnyHK