MongoDB dup key: { : null }

aut*_*xer 6 mongodb

我没有太多 MongoDB 经验,并且我在使用 mLab 实例时遇到以下问题:

E11000 duplicate key error index: development.users.$key_1 dup key: { : null } MongoError: E11000 duplicate key error index: development.users.$key_1 dup key: { : null }

我尝试按key字段排序,寻找null密钥,但不确定应该如何查找重复的null密钥。让这件事变得困难的是,我什至不知道要搜索谷歌或堆栈溢出来解决这个问题。任何帮助将不胜感激,以下是完整的错误:

Mongoose model 'index-single-done' event fired on 'Family' for index:
Object {key: 1}

With error:
    E11000 duplicate key error index: development.users.$key_1 dup key: { : null } MongoError: E11000 duplicate key error index: 
development.users.$key_1 dup key: { : null }
at Function.MongoError.create (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:497:72
at authenticateStragglers (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:443:16)
at Connection.messageHandler (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:477:5)
at Socket.<anonymous> (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/connection.js:333:22)
at Socket.emit (events.js:180:13)
at Socket.emit (domain.js:422:20)
at addChunk (_stream_readable.js:274:12)
at readableAddChunk (_stream_readable.js:261:11)
at Socket.Readable.push (_stream_readable.js:218:10)
at TCP.onread (net.js:581:20)
Mongoose model 'index' event fired on 'Family' with error:
E11000 duplicate key error index: development.users.$key_1 dup key: { : null } MongoError: E11000 duplicate key error index: development.users.$key_1 dup key: { : null }
at Function.MongoError.create (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/error.js:31:11)
at /Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:497:72
at authenticateStragglers (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:443:16)
at Connection.messageHandler (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/pool.js:477:5)
at Socket.<anonymous> (/Users/myUserName/development/projectName/node_modules/mongodb-core/lib/connection/connection.js:333:22)
at Socket.emit (events.js:180:13)
at Socket.emit (domain.js:422:20)
at addChunk (_stream_readable.js:274:12)
at readableAddChunk (_stream_readable.js:261:11)
at Socket.Readable.push (_stream_readable.js:218:10)
at TCP.onread (net.js:581:20)
Run Code Online (Sandbox Code Playgroud)

Raj*_*mar 2

duplicate key error index: development.users.$key_1 dup key: { : null }

这意味着您的key字段设置为仅接受唯一值,并且已经有一条key具有值的记录,并且您无法使用asnull插入另一文档。它类似于 SQL 数据库中的主键。keynull

检查您的猫鼬模式,因为它看起来像您正在使用猫鼬。

最有可能的:

  1. 保存记录时您没有传递密钥
  2. 如果您传递密钥,则其值为空

  • 谢谢@Raj Kumar,看起来确实是这样。我现在想做的是找到“key”字段中具有空值的两条记录,但我似乎无法进行搜索来执行任何操作。{ 'key': null } 不返回任何内容。有什么想法我做错了吗? (2认同)