Различия между объявить, набрать и локальной переменной в Bash

Обеспечение уникальности отдельных значений в поле массива

В дополнение к приведенному выше примеру в MongoDB есть функция, гарантирующая, что при добавлении нового объекта / value в поле массива, что он будет выполнять обновление только в том случае, если значение / объект еще не существует.

Итак, если у вас есть документ, который выглядит следующим образом:

{ _id: 123, kittens: [456] }

Это будет разрешено:

db.cats.update({_id:123}, {$push: {kittens:456}})

, что приводит к

{ _id: 123, kittens: [456, 456] }

, однако использование функции $ addToSet (в отличие от $ push) проверяет, существует ли уже существующее значение перед добавлением его. Итак, начиная с:

{ _id: 123, kittens: [456] }

, тогда выполнение:

db.cats.update({_id:123}, {$addToSet: {kittens:456}})

Не было бы никакого эффекта.

Итак, длинный рассказ, уникальные ограничения надеть 't проверять уникальность внутри значений элементов поля массива, только два документа не могут иметь одинаковые значения в индексированных полях.

39
задан Keith Pinson 26 June 2012 в 19:01
поделиться