本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
$addToSet
Amazon DocumentDB 中的$addToSet運算子只有在 值不存在於陣列中時,才會用來將值新增至陣列。這有助於確保陣列包含唯一的元素。
參數
範例 (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()