【发布时间】:2016-10-10 14:59:30
【问题描述】:
主要目标是:一次插入多个文档,但确保集合中只存储唯一的文档解释如下
我像这样一次将许多文档插入到一个 mongodb 集合中:
db.users.insert([{name: 'Joe'}{'name': 'Bob'}]);
插入插入的某些值可能是重复的,我希望 MongoDB 忽略这些。这是为了确保集合内的唯一性。
db.users.insert([{name: 'Joe'}{'name': 'Jack'}]);
使用索引,如果整个插入不是唯一的而不是仅忽略非唯一项,则整个 .insert() 操作将失败。
db.users.createIndex({ 'name': 1 }, { unique: true });
来自 mongoDB 的日志:
BulkWriteResult({
"writeErrors" : [
{
"index" : 0,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: test.users index: name_1 dup key: { : \"Joe\" }",
"op" : {
"_id" : ObjectId("57f924ee7d864acfefaca700"),
"name" : "joe"
}
}
],
"writeConcernErrors" : [ ],
"nInserted" : 0,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
还有其他方法吗?
【问题讨论】:
-
你真正想要什么?你能详细说明一下吗
-
@WasiqMuhammad 我认为这个问题很清楚......我想一次插入多个文档,但确保只有唯一的文档存储在集合中。将此添加到问题帖子中
标签: javascript node.js mongodb mongodb-query