のMongoDB集約フレームワークで結果を組み合わせますto sequenceID)、その 'q0'は確実に1に等しい(他のqxフィールドは0または1かもしれない)。 私はq1、q2、...、q5について同じことをしたいと思います。言い換えれば、最新の文書を表す6つのレコードを含む結果が必要です。そのうちの「qn」(n = 0..5)レコードは間違いなく「0」です。は、複数の一致を()私は次のクエリを得た
次の部分を6回繰り返して($ matchセクションのqx値が異なる場合)、それらを組み合わせることは可能ですか?
{
$match :
{
"q0":"1"
}
},
{
$sort : { "sequenceID" : -1, }
},
{
$limit : 1
}
これはもっと良い解決策ですか?
--- EDIT(いくつかのサンプル[簡体]データの追加):
/* 1 */
{
"_id" : ObjectId("57288fa553f65928c4bf4b2b"),
"header" : {
"MessageType" : "04"
},
"content" : {
"Changes" : [
"0",
"1",
"1",
"1",
"1",
"0"
]
},
"sequenceID" : NumberLong(369851),
"messageDate" : 13950214
}
/* 2 */
{
"_id" : ObjectId("57288fa453f65928c4bf4863"),
"header" : {
"MessageType" : "04"
},
"content" : {
"Changes" : [
"0",
"0",
"1",
"0",
"0",
"0"
]
},
"sequenceID" : NumberLong(369139),
"messageDate" : 13950214
}
/* 3 */
{
"_id" : ObjectId("57288fa353f65928c4bf43c2"),
"header" : {
"MessageType" : "04"
},
"content" : {
"Changes" : [
"0",
"1",
"0",
"0",
"0",
"0"
]
},
"sequenceID" : NumberLong(367953),
"messageDate" : 13950214
}
各文書(6まで)の変更を一つ以上を示します。変更はq0..q5フィールドに表示されます。出力として必要なのは、各qxフィールドの最新の変更です。文書の順序は「sequenceID」フィールドによって決定することができる。つまり、結果のすべての文書のI0(論理的に)またはq0..q5の場合は、[1、1、1、1、1、1] ]。
複数の一致ステートメントが必要ですか?それが可能ならば可能です。 – rummykhan
入力ドキュメントの例がないので推測するのは難しいです。私の答えで提案した解決策を駆動する可能性があります。 – profesor79
@rummykhan必要なのは、パイプラインの同じステージで同時に動作する複数の一致ステートメントです。それは可能ですか? –