$cmp - Amazon DocumentDB

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

$cmp

Amazon DocumentDB 中的$cmp運算子用於比較兩個值,並傳回整數值,指出其相對順序。這是一個比較運算子,可比較兩個表達式,並傳回 -1、0 或 1 的整數值,取決於第一個值是否分別小於、等於或大於第二個值。

參數

  • expression1:要比較的第一個表達式。

  • expression2:要比較的第二個表達式。

範例 (MongoDB Shell)

下列範例示範運算$cmp子用來比較兩個數值的用量。

建立範例文件

db.collection.insertMany([ { _id: 1, value1: 10, value2: 20 }, { _id: 2, value1: 15, value2: 15 }, { _id: 3, value1: 20, value2: 10 } ]);

查詢範例

db.collection.find({ $expr: { $cmp: ["$value1", "$value2"] } })

輸出

[ { "_id" : 1, "value1" : 10, "value2" : 20 }, { "_id" : 3, "value1" : 20, "value2" : 10 } ]

在此範例中,$cmp運算子會比較每個文件的 value1value2 欄位。結果為:

- `$cmp: ["$value1", "$value2"]` returns -1 for the first document (10 < 20), 0 for the second document (15 = 15), and 1 for the third document (20 > 10).

程式碼範例

若要檢視使用 $cmp命令的程式碼範例,請選擇您要使用的語言標籤:

Node.js

以下是在 Node.js 應用程式中搭配mongodb驅動程式使用 $cmp 運算子的範例:

const { MongoClient } = require('mongodb'); const client = new MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); async function main() { await client.connect(); const db = client.db('test'); const collection = db.collection('mycollection'); // Insert sample documents await collection.insertMany([ { _id: 1, value1: 10, value2: 20 }, { _id: 2, value1: 15, value2: 15 }, { _id: 3, value1: 20, value2: 10 } ]); // Query using $cmp operator const result = await collection.find({ $expr: { $cmp: ['$value1', '$value2'] } }).toArray(); console.log(result); await client.close(); } main();
Python

以下是在 Python 應用程式中搭配pymongo驅動程式使用 $cmp 運算子的範例:

from pymongo import MongoClient client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['mycollection'] # Insert sample documents collection.insert_many([ {'_id': 1, 'value1': 10, 'value2': 20}, {'_id': 2, 'value1': 15, 'value2': 15}, {'_id': 3, 'value1': 20, 'value2': 10} ]) # Query using $cmp operator result = list(collection.find({ '$expr': { '$cmp': ['$value1', '$value2'] } })) print(result) client.close()

Node.js 和 Python 範例的輸出將與 MongoDB Shell 範例相同:

[ { "_id" : 1, "value1" : 10, "value2" : 20 }, { "_id" : 2, "value1" : 15, "value2" : 15 }, { "_id" : 3, "value1" : 20, "value2" : 10 } ]