在 MongoDB 中選擇兩個欄位並返回一個按其不同值排序的陣列?
要選擇兩個欄位並返回一個按不同值排序的陣列,使用集合框架以及 $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 }以下是選擇兩個欄位並返回一個按其不同值排序的陣列的查詢。此處欄位為“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 ] }
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP