$addToSet
operatordodaje wartość do tablicy tylko wtedy, gdy wartość nie znajduje się jeszcze w tablicy. Jeśli wartość znajduje się w tablicy, $addToSet
nie modyfikuje tablicy.
Chcę wstawić dwie wartości, które nie powinny być duplikowane przez jedno żądanie. czy to możliwe?
Próbowałem przekazać tablicę do operatora $addToSet
, ale wstawiono tablicę zamiast każdej wartości z tej tablicy.
$ 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 ] ] }
byłem dodając własną odpowiedź. :-) Tak łatwo ... –
@ IonicăBizău Cokolwiek. Wiesz, że jeśli chcesz dodać odpowiedź typu pytania i odpowiedzi, w jednym zgłoszeniu możesz wykonać zarówno pytanie, jak i odpowiedź. Dzięki temu faceci, tacy jak my, po prostu przesyłają odpowiedzi, ponieważ robili to w tym samym czasie. Stawiam na duplikat gdzieś chociaż –
Kiedy zadałem pytanie, nie znałem odpowiedzi. Ale po opublikowaniu przypomniałem sobie, że istnieje operator '$ each', który może być z tym powiązany. :-) –