私は、状態の変更や存在するメンバーが存在する場合には、どのメンバーが存在しないのかを知りたい。以下のようなMongoDBで2番目の文書と1番目の文書をどのように並べ替えるのか?
状態の順序のための私の与えられた配列は:
[{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")
}
]
}
を
私は、どのメンバーが1つの州から別の州に存在していないか、どのメンバーが存在しているのかを知りたいと思います。現在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人のメンバー - (IP CS)第二状態手段への私の試験の第一の状態では
そして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州を持っており、すべての情報を1つのクエリで取得したいと考えています。他のアイデア? @ bertrand-martel –