기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
$setDifference
버전 4.0의 새 버전입니다.
Amazon DocumentDB의 $setDifference 연산자는 두 세트를 비교하고 첫 번째 세트에는 있지만 두 번째 세트에는 없는 요소를 반환하는 데 사용됩니다. 이 연산자는 두 세트 사이의 고유한 요소를 찾는 데 유용합니다.
파라미터
예제(MongoDB 쉘)
다음 예제에서는 $setDifference 연산자를 사용하여 두 세트 간의 고유한 요소를 찾는 방법을 보여줍니다.
샘플 문서 생성
db.collection.insertMany([
{ _id: 1, fruits: ["apple", "banana", "cherry", "date"] },
{ _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] }
]);
쿼리 예제
db.collection.aggregate([
{
$project: {
uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] }
}
}
]);
출력
[
{ "_id": 1, "uniqueFruits": ["apple"] },
{ "_id": 2, "uniqueFruits": ["elderberry"] }
]
쿼리는 다음 단계를 수행합니다.
1. $project 스테이지를 사용하여 각 문서에 uniqueFruits 대한 새 필드를 생성합니다.
2. 연$setDifference산자는 fruits 배열을 배열과 비교["banana", "cherry", "date"]하고 fruits 배열의 고유 요소를 반환합니다.
코드 예제
$setDifference 명령을 사용하기 위한 코드 예제를 보려면 사용하려는 언어의 탭을 선택합니다.
- Node.js
-
다음은 Node.js 애플리케이션에서 $setDifference 연산자를 사용하는 방법의 예입니다.
const { MongoClient } = require('mongodb');
async function main() {
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('mycollection');
// Insert sample documents
await collection.insertMany([
{ _id: 1, fruits: ["apple", "banana", "cherry", "date"] },
{ _id: 2, fruits: ["banana", "cherry", "date", "elderberry"] }
]);
// Query using $setDifference
const result = await collection.aggregate([
{
$project: {
uniqueFruits: { $setDifference: ["$fruits", ["banana", "cherry", "date"]] }
}
}
]).toArray();
console.log(result);
await client.close();
}
main();
- Python
-
다음은 Python 애플리케이션에서 $setDifference 연산자를 사용하는 방법의 예입니다.
from pymongo import MongoClient
def main():
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, 'fruits': ["apple", "banana", "cherry", "date"]},
{'_id': 2, 'fruits': ["banana", "cherry", "date", "elderberry"]}
])
# Query using $setDifference
result = list(collection.aggregate([
{
'$project': {
'uniqueFruits': {'$setDifference': ['$fruits', ["banana", "cherry", "date"]]}
}
}
]))
print(result)
client.close()
if __name__ == '__main__':
main()