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个州,我想在一个查询中获得所有信息。任何其他想法? @伯特兰 - 马特尔 –