MongoDB индексация во встроенных документах - PullRequest
0 голосов
/ 24 октября 2018
{
    "_id" : "sen",

    "DemRole" : [ 
        {
            "Name" : "IO",
            "Status" : false
        }, 
        {

            "Name" : "FO",
            "Status" : true
        }
    ]

}


{
    "_id" : "kum",

    "DemRole" : [ 
        {

            "Name" : "PO",
            "Status" : false
        }
    ]
}

Я не хочу иметь дубликаты записей во встроенном документе DemRole для одного документа.Поэтому я ввел приведенный ниже индекс

db.UserProfile.createIndex({"DemRole.Name":"text"},{ unique: true });

Но я не могу добавить ниже встроенный документ для _id: kum и выкидываю ошибку дублирующего ключа.

    {
        "Name" : "FO",
        "Status" : true
    }

Имя "FO" существуетдля _id: sen, но не для _id: kum.Я ожидал, что он выдаст ошибку, если я добавлю выше для -id: sen и позволит мне добавить _id: kum.Но похоже, что имя «FO» нельзя добавить нигде в коллекции.

Мое требование - не иметь одинаковое имя для _id. Но такое же имя может существовать для другого _id.то есть я не хочу иметь дубликаты имен в документе, но одно и то же имя может существовать в документах.Принимая во внимание, что индексирование ограничивает создание дублирующих записей в документах.Можете ли вы дать мне знать, как этого можно достичь в mongodb?

...