【发布时间】:2020-05-11 18:06:57
【问题描述】:
嗯,我正在使用 python 和 MongoDB,但我在聚合方面遇到了很多问题。
我的主要收藏有这种结构
{
"_id": {
"$oid": "5bef5692d0c24110b0004671"
},
"dateAdded": {
"$date": "2018-10-16T23:45:22.974Z"
},
"phoneNumber": "xxxxxxxx",
"phoneType": "pay",
"duration": 0,
"apiCallsCount": 3,
"tenant": {
"$oid": "5b3fd3f99a8f4e04900c4e17"
},
"sessionStatus": "EXPIRED"
}
我的第二个收藏有这个结构
{
"_id": {
"$oid": "5bf46869d0c2410decc4e050"
},
"dateAdded": {
"$date": "2018-11-20T20:02:49.281Z"
},
"resolutionStatus": "Complete",
"finalResult": "OK",
"intention": "Query_one",
"call": {
"$oid": "5bef5692d0c24110b0004671"
},
"duration": 0,
"dateExpired": {
"$date": "2018-11-20T20:04:01.732Z"
},
"queryType": "phone",
"tenant": {
"$oid": "5b3fd3f99a8f4e04900c4e17"
}
}
首先,我需要在特定日期之前从第一个集合中获取所有文档,接下来使用 _id 获取所有这些文档,我需要获取第二个集合中的所有文档(第一个集合中的 _id 与调用第二个集合)并将其从集合中删除。
我认为我需要查找,我的聚合看起来像这样,但不起作用。我不知道我需要什么来解决这个问题。
self.db.get_collection(first_collection).aggregate([
{
$lookup:
{
from: second_collection,
localField: "_id",
foreignField: "call",
as: "inventory_docs"
}
}
])
【问题讨论】:
-
所以您想删除
second_collection中的整个文档还是只调用字段?你的数据库版本是多少? -
我想删除集合中的所有文档,MongoDB 4.2.6 社区
-
所以您想删除
second_collection中的所有文档,这些文档在添加日期过滤first_collection后在first_collection中有引用? -
是的,没错
标签: python mongodb mongodb-query aggregation-framework pymongo