MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBクエリで配列を並べ替えて、すべてのフィールドを投影しますか?


配列をソートするには、$sortを使用します。投影には、MongoBDaggregate()で$projectを使用します。ドキュメントを使用してコレクションを作成しましょう-

> db.demo252.insertOne(
...   {"Values" : [ { "v1" : 20, "v2" :30 }, { "v1" : 20, "v2" : 20 }, { "v1" : 10, "v2" : 7 } ] }
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e46c2761627c0c63e7dba78")
}

find()メソッドを使用してコレクションからすべてのドキュメントを表示する-

> db.demo252.find();

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e46c2761627c0c63e7dba78"), "Values" : [ { "v1" : 20, "v2" : 30 }, { "v1" : 20, "v2" : 20 }, { "v1" : 10, "v2" : 7 } ] }

以下は、配列を並べ替えて、aggregate()-

を使用してすべてのフィールドを投影するためのクエリです。
> db.demo252.aggregate([
...   { "$unwind": "$Values"},
...   { "$sort": {"Values.v2":1, "Values.v1": 1}},
...   { "$group": {
...      "_id": {
...         "_id": "$_id"
...
...      },
...      "st": { "$push":"$Values"}
...   }},
...   { "$project": {
...      "_id": "$_id._id",
...      "Values": "$st"
...   }}
...]);

これにより、次の出力が生成されます-

{ "_id" : ObjectId("5e46c2761627c0c63e7dba78"), "Values" : [ { "v1" : 10, "v2" : 7 }, { "v1" : 20, "v2" : 20 }, { "v1" : 20, "v2" : 30 } ] }

  1. MongoDBに埋め込まれたドキュメントの配列をクエリし、別のドキュメントをプッシュしますか?

    このために、更新と一緒に$pushを使用します。ドキュメントを使用してコレクションを作成しましょう- > db.demo573.insertOne( ...    { ...       '_id' :101, ...       'SearchInformation' : [ ...          { ...             'Site'

  2. _idを除くすべてのフィールド値を表示するMongoDBクエリ

    ドキュメントを使用してコレクションを作成しましょう- > db.demo590.insert([ ...    { "Name": "Chris", "Age": 21 }, ...    {"Name": "Bob", "Age": 20}, ...    { "Name": "Sam", "Age": 19 } ... ]); BulkWriteR