0
我想知道哪些成員在狀態變化時以及哪個成員在場時不存在。如何根據給定的順序計算MongoDB中的第一個文檔和第二個文檔?
我定的數組爲國家秩序,如:
[{order:1,text:'CS'}, {order:2,text:'IP'}, {order:3,text:'AC'}]
所以我想按照這個數組排序要與文檔每消減執行一些操作
我的文件,如:
{
"count" : 2,
"state" : "CS",
"members" : [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-24T03:39:05.720Z")
},
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
}
]
},
{
"count" : 1,
"state" : "AC",
"members" : [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-24T03:39:05.720Z")
}
]
},
{
"count" : 3,
"state" : "IP",
"members" : [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-24T03:39:05.720Z")
},
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
},
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
}
]
}
所以我想知道哪些成員不存在從一個國家到另一個國家以及哪些成員在場。
以我考試第一狀態到第二狀態的裝置(CS - IP):本2個部件和不存在1個構件
{
"state": "CS_IP",
"present": [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-24T03:39:05.720Z")
},
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
}
],
"notPresent": [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
}
]
}
和第二狀態到第三狀態的裝置(IP - AC):本1個構件並且不存在2成員
{"state": "IP_AC",
"present": [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-24T03:39:05.720Z")
}
],
"notPresent": [
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
},
{
"email" : "[email protected]",
"date" : ISODate("2016-12-25T02:32:48.698Z")
}
]}
我怎樣才能做到這一點使用aggregate
查詢,因爲我需要這個階段完成後,一些聚合操作
感謝您的回覆。我有大約20個州,我想在一個查詢中獲得所有信息。任何其他想法? @伯特蘭 - 馬特爾 –