MongoDB 集合中的唯一文档

2023-12-02

我需要在文档中存储三个 id: 但它们只能出现一次。例如,以下文档在此集合中只能出现一次:

{
  "user": ObjectId("j8uwh902w5489"),
  "comment": ObjectId("09890583457jkjsf4"),
  "whatever": ObjectId("j8uwh902w5489")
}

我如何确保这将是 MongoDB 中的唯一文档?


那么你可以使用MongoDB 唯一复合索引

db.users.createIndex( { user: 1, comment: 1, whatever: 1 }, { unique: true } )

几个案例:

> db.users.insert({user: "A", comment: "B", whatever: "C"})
WriteResult({ "nInserted" : 1 })
> db.users.insert({user: "A", comment: "C", whatever: "B"})
WriteResult({ "nInserted" : 1 })
> db.users.insert({user: "A", comment: "B", whatever: "C"})
> WriteResult({

    "nInserted" : 0,
    "writeError" : {
            "code" : 11000,
            "errmsg" : "insertDocument :: caused by :: 11000 E11000 duplicate key error index: test.users.$user_1_comment_1_whatev
er_1  dup key: { : \"A\", : \"B\", : \"C\" }"
    }
})

我知道我在这里使用了字符串。但使用 ObjectId 也可能实现类似的效果。请尝试一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB 集合中的唯一文档 的相关文章

随机推荐