$addToSet - Amazon DocumentDB

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

$addToSet

Amazon DocumentDB 中的$addToSet運算子只有在 值不存在於陣列中時,才會用來將值新增至陣列。這有助於確保陣列包含唯一的元素。

參數

  • field:要更新的欄位。

  • value:要新增至陣列欄位的值。這可以是單一值或表達式。

範例 (MongoDB Shell)

下列範例示範如何使用 $addToSet運算子將唯一元素新增至陣列。

建立範例文件

db.products.insertMany([ { "_id": 1, "item": "apple", "tags": ["fruit", "red", "round"] }, { "_id": 2, "item": "banana", "tags": ["fruit", "yellow"] }, { "_id": 3, "item": "cherry", "tags": ["fruit", "red"] } ])

查詢範例

db.products.update( { "item": "apple" }, { $addToSet: { "tags": "green" } } )

輸出

{ "_id": 1, "item": "apple", "tags": ["fruit", "red", "round", "green"] }

在此範例中,$addToSet運算子會將 "green" 標籤新增至文件的 "tags" 陣列,其中 "item" 欄位為 "apple"。由於 "green" 尚未在陣列中,因此已新增。

程式碼範例

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

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); const db = client.db('test'); const collection = db.collection('products'); await collection.updateOne( { "item": "apple" }, { $addToSet: { "tags": "green" } } ); const updatedDoc = await collection.findOne({ "item": "apple" }); console.log(updatedDoc); await client.close(); } example();
Python
from pymongo import MongoClient def example(): 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.products collection.update_one( {"item": "apple"}, {"$addToSet": {"tags": "green"}} ) updated_doc = collection.find_one({"item": "apple"}) print(updated_doc) client.close() example()