Mongodb-返回所有关联文档,其中包含从另一个查询派生的键的值
我有一份结构如下的文件:Mongodb-返回所有关联文档,其中包含从另一个查询派生的键的值,mongodb,mongodb-query,pymongo,database,Mongodb,Mongodb Query,Pymongo,Database,我有一份结构如下的文件: { "Type" : "Request", "Cat" : "A", "ID" : 10 } { "Type" : "Processed", "Cat" : "A", "ID" : 10 } { "Type" : "Receieved", "Cat" : "A", "ID" : 10 } { "Type" : "Receieved", "Cat" : "B", "ID"
{
"Type" : "Request",
"Cat" : "A",
"ID" : 10
}
{
"Type" : "Processed",
"Cat" : "A",
"ID" : 10
}
{
"Type" : "Receieved",
"Cat" : "A",
"ID" : 10
}
{
"Type" : "Receieved",
"Cat" : "B",
"ID" : 11
}
{
"Type" : "Processed",
"Cat" : "C",
"ID" : 12
}
我想要文件:
{
"Type" : "Request"
"Cat" : "A"
"ID" : 10
}
{
"Type" : "Processed"
"Cat" : "A"
"ID" : 10
}
{
"Type" : "Receieved"
"Cat" : "A"
"ID" : 10
}
{
"Type" : "Processed"
"Cat" : "C"
"ID" : 12
}
有人能帮我实现这个目标吗?我总共在$match下使用了elemmatch,但它没有按预期工作 您可以尝试以下方法
db.collection.aggregate([
{$project : {
"ID":1,
"doc.Type" : "$Type",
"doc.Cat" : "$Cat",
"doc.ID" : "$ID"
}
}
{$group : {
_id : "$ID",
docs : {$push : doc}
}
},
{$match : {
"docs.Type":"Processed"
}
},
{$unwind : "$docs"},
{$project : {
_id : 0,
docs : 0,
"Type" : "$docs.Type",
"Cat" : "$docs.Cat",
"ID" : "$docs.ID"
}
}
])