0
以下のデータがmongoコレクションにあります。 PostgresのでSQLに対応し集約フレームワークを使用してSQLクエリをmongoに変換する
db.tempTest.insert([{
"id" : "12345",
createdOn : ISODate("2016-09-15T19:25:00.000Z"),
"addr" : "address1",
"book" : "book1"
}, {
"id" : "12345",
createdOn : ISODate("2016-09-14T19:25:00.000Z"),
"addr" : "address2",
"book" : "book2"
}, {
"id" : "12346",
createdOn : ISODate("2016-09-15T19:26:00.000Z"),
"addr" : "address3",
"book" : "book3"
}, {
"id" : "12346",
createdOn : ISODate("2016-09-15T19:26:01.000Z"),
"addr" : "address4",
"book" : "book4"
}, {
"id" : "12346",
createdOn : ISODate("2016-09-14T19:26:01.000Z"),
"addr" : "address5",
"book" : "book5"
}, {
"id" : "12347",
createdOn : ISODate("2016-09-14T19:26:01.000Z"),
"addr" : "address6",
"book" : "book6"
}, {
"id" : "12347",
createdOn : ISODate("2016-09-10T19:26:01.000Z"),
"addr" : "address7",
"book" : "book7"
}, {
"id" : "12345",
createdOn : ISODate("2016-09-14T19:25:00.000Z"),
"addr" : "address8",
"book" : "book8"
}]);
クエリは以下のようになります:
SELECT *
FROM
(SELECT
ROW_NUMBER() OVER (PARTITION BY idnew ORDER BY createdOn ASC) AS rownumber,
*
FROM temp) AS TEMP
WHERE
rownumber = 1
AND idnew IN ('12345', '12346', '12347')
ORDER BY
createdOn ASC
私はデシベルをモンゴに新しいです。私は集計フレームワークに行き、$ matchを使用することができましたが、$ groupを使用してidnewグループから少なくともcreatedOnでドキュメントをフェッチすることはできません。条件を満たす文書のすべてのフィールドが必要です。 mongo shellの質問に枠を付けるのを助けてください。
ResultSetが以下のようにする必要があります:
検索や裁判の多くの{
"id" : "12347",
createdOn : ISODate("2016-09-10T19:26:01.000Z"),
"addr" : "address7",
"book" : "book7"
}, {
"id" : "12345",
createdOn : ISODate("2016-09-14T19:25:00.000Z"),
"addr" : "address8",
"book" : "book8"
}, {
"id" : "12346",
createdOn : ISODate("2016-09-14T19:26:01.000Z"),
"addr" : "address5",
"book" : "book5"
}
、私はデータ を抽出するために管理することができますが、$ arrayElemAt機能を使用したときのフォーマットが変更されます。下記の クエリを共有します。 この出力を上記の共有に変換するのを手伝ってください。
/* 1 */
{
"_id" : "12347",
"details" : {
"_id" : ObjectId("57dc1b094c105db1a666b0a8"),
"id" : "12347",
"createdOn" : ISODate("2016-09-10T19:26:01.000Z"),
"addr" : "address7",
"book" : "book7"
}
}
/* 2 */
{
"_id" : "12345",
"details" : {
"_id" : ObjectId("57dc1b094c105db1a666b0a3"),
"id" : "12345",
"createdOn" : ISODate("2016-09-14T19:25:00.000Z"),
"addr" : "address2",
"book" : "book2"
}
}
/* 3 */
{
"_id" : "12346",
"details" : {
"_id" : ObjectId("57dc1b094c105db1a666b0a6"),
"id" : "12346",
"createdOn" : ISODate("2016-09-14T19:26:01.000Z"),
"addr" : "address5",
"book" : "book5"
}
}