MongoDB:为嵌套文档创建唯一索引

时间:2018-03-05 09:28:46

标签: arrays mongodb unique-index mongodb-indexes

Array
(
    [_id] => 1
    [OrderId] => 123456_0203_2500001101518267176
    [Items] => Array
       0 =>  Array (
            [ItemId] => "123456"
            [ItemDesc] => "This Item numer 123456"
        ),
       1 =>  Array (
            [ItemId] => "123457"
            [ItemDesc] => "This Item numer 123457"
        ),


)

Array
(
    [_id] => 1
    [OrderId] => 123456_0203_2500001101518267199
    [Items] => Array
       0 =>  Array (
            [ItemId] => "123458"
            [ItemDesc] => "This Item numer 123458"
        ),
       1 =>  Array (
            [ItemId] => "123459"
            [ItemDesc] => "This Item numer 123459"
        ),


)

我想让ItemId在文档和文档中都是唯一的。

唯一索引仅提供文档的唯一性。但是,我想限制在文档中重复相同的ItemId。

1 个答案:

答案 0 :(得分:0)

您可以在插入/更新文档时使用$addToSet。我认为你不需要索引。

使用$addToSet

的示例
db.test.update(
   { _id: 1 },
   { $addToSet: {letters: [ "c", "d" ] } }
)

详细信息:https://docs.mongodb.com/manual/reference/operator/update/addToSet/