source

$addToSet Mongo 연산자를 사용하여 여러 값 추가

lovecheck 2023. 5. 2. 22:47
반응형

$addToSet Mongo 연산자를 사용하여 여러 값 추가

$addToSet교환입니다. 값이 배열에 아직 없는 경우에만 배열에 값을 추가합니다.값이 배열에 있으면,$addToSet배열을 수정하지 않습니다.

저는 한 번의 요청으로 중복되지 않아야 할 두 개의 값을 삽입하고 싶습니다.이것이 가능합니까?

나는 배열을 전달하려고 했습니다.$addToSet연산자가 해당 배열의 각 값 대신 배열을 삽입했습니다.

$ mongo test
MongoDB shell version: 2.4.9
connecting to: test
> db.c.insert({a: [1, 2, 3]})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3 ] }
> db.c.update({}, {$addToSet: {a: [2, 4]}})
> db.c.find()
{ "_id" : ObjectId("53511a255a82cd559393d840"), "a" : [ 1, 2, 3, [ 2, 4 ] ] }

문서에서:

값이 배열인 경우$addToSet전체 배열을 단일 요소로 추가합니다.값의 각 요소를 개별적으로 추가하려면 다음을 사용합니다.$addToSet와 함께$each수식어자세한 내용은 수정자를 참조하십시오.

따라서 대신 다음을 사용해야 합니다.

db.c.update({}, {$addToSet: {a: {$each: [2, 4]}}})

네. 하지만 당신은 진술서에 수식어를 추가해야 합니다.

db.c.update({},{ $addToSet: { a: {$each: [ 2, 4 ] } } })

그리고 그 결과:

{ "a" : [ 1, 2, 3, 4 ] }

언급URL : https://stackoverflow.com/questions/23154217/add-multiple-values-using-addtoset-mongo-operator

반응형