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

2つのフィールドを選択し、MongoDBで個別の値を持つソートされた配列を返しますか?


2つのフィールドを選択し、個別の値を持つ並べ替えられた配列を返すには、$setUnion演算子とともに集計フレームワークを使用します。まず、ドキュメントを使用してコレクションを作成しましょう-

> db.sortedArrayWithDistinctDemo.insertOne(
...    { value1: 4, value2: 5}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc690b99cb58ca2b005e666")
}
> db.sortedArrayWithDistinctDemo.insertOne(
...    {value1: 5, value2: 6}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc690b99cb58ca2b005e667")
}
> db.sortedArrayWithDistinctDemo.insertOne(
...    {value1: 7, value2: 4}
... );
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5cc690b99cb58ca2b005e668")
}

以下は、find()メソッドを使用してコレクションからすべてのドキュメントを表示するためのクエリです-

> db.sortedArrayWithDistinctDemo.find().pretty();

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

{ "_id" : ObjectId("5cc690b99cb58ca2b005e666"), "value1" : 4, "value2" : 5 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e667"), "value1" : 5, "value2" : 6 }
{ "_id" : ObjectId("5cc690b99cb58ca2b005e668"), "value1" : 7, "value2" : 4 }

以下は、2つのフィールドを選択し、それらの個別の値を持つソートされた配列を返すクエリです。ここでのフィールドは「value1」と「value2」です-

> db.sortedArrayWithDistinctDemo.aggregate(
...    [
...       { "$group": {
...          "_id": null,
...          "value1": { "$push": "$value1" },
...          "value2": { "$push": "$value2" }
...       }},
...       { "$project": {
...          "_id": 0,
...          "bothValues": { "$setUnion": [ "$value1", "$value2" ] }
...       }}
...    ]
... );

これにより、次の出力が生成されます。これで、並べ替えられた配列が個別の値で返されます-

{ "bothValues" : [ 4, 5, 6, 7 ] }

  1. 個別を選択してカウントするMongoDBクエリ?

    ドキュメントを使用してコレクションを作成しましょう- > db.demo586.insertOne( ...    {"details": [ ...       { ...          "Name":"Chris", ...          "Marks":71 ...       }, ...    

  2. MySQLで個別の値とその数を返す方法は?

    個別の値のみを返すには、GROUPBY句を使用します。 まずテーブルを作成しましょう- mysql> create table DemoTable754 (ProductPrice int); Query OK, 0 rows affected (0.48 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable754 values(200); Query OK, 1 row affected (0.20 sec) mysql> insert into DemoTable754 values(5