повторяющиеся строки mongodb

#mongodb

#mongodb

Вопрос:

У меня есть 4 поля в моей MongoDB базе данных date,source,uid,time

Я хочу создать индекс по дате, но я также хочу убедиться, что никакие две строки не имеют одинакового значения date,source,uid,time .. один из способов сделать это — это (как я читал в документации)

 db.things.ensureIndex({date : 1, source:1, uid:1, time:1}, {unique : true, dropDups : true})
  

но он использует индекс составных ключей .. мне нужен индекс только по дате, и я также хочу убедиться, что никакие два потока не имеют одинакового значения для даты, источника, uid и времени.

пожалуйста, помогите мне, как это сделать?

Ответ №1:

Для обеспечения уникальности вам нужен индекс по (дата, источник, uid, время), и поскольку date является первым свойством в этом индексе, Mongo может использовать его и для запросов только по дате. Фактически, индекс также может использоваться в запросах, включающих (дата, источник), (дата, источник, uid) и (дата, источник, uid, время).

Другими словами, индекс может использоваться для любого подмножества свойств, встречающихся в индексе, при условии, что они образуют префикс индекса.