Подтвердить что ты не робот

Как применить ограничения в MongoDB?

Я начал использовать MongoDB, и я довольно новичок в этом. Есть ли способ, с помощью которого я могу применить ограничения на документы в MongoDB? Как указание первичного ключа или принятие атрибута как уникального? Или указать, что конкретный атрибут больше минимального значения?

4b9b3361

Ответ 1

Будучи "схематичной" базой данных, некоторые из упомянутых вами вещей должны быть ограничены со стороны приложения, а не стороной db. (например, "минимальное значение" )

Однако вы можете создавать индексы (ключи для запроса) - помнить, что запрос может использовать только один индекс за раз, поэтому обычно лучше создавать индексы вокруг ваших запросов, а не просто индексировать каждое поле, которое вы можете запросить против): http://www.mongodb.org/display/DOCS/Indexes#Indexes-Basics

И вы также можете создавать уникальные индексы, которые будут обеспечивать уникальность, сходную с уникальным ограничением (у нее есть некоторые оговорки, например, с полями массива): http://www.mongodb.org/display/DOCS/Indexes#Indexes-unique%3Atrue

Ответ 2

Чтобы выйти за пределы ограничений уникальности, доступных изначально в индексах, вам нужно использовать что-то вроде Mongoose и его способность поддерживать полевые validation. Это даст вам поддержку для таких вещей, как минимальное значение, но только когда обновления проходят через ваши схемы/модели Mongoose.

Обновление MongoDB 3.2

Проверка документа теперь поддерживается MongoDB.

Пример из документации:

db.createCollection( "contacts",
   { validator: { $or:
      [
         { phone: { $type: "string" } },
         { email: { $regex: /@mongodb\.com$/ } },
         { status: { $in: [ "Unknown", "Incomplete" ] } }
      ]
   }
} )