MongoError:E11000 重复键错误集合:annka.transactions 索引:assets_1 重复键::null

Posted

技术标签:

【中文标题】MongoError:E11000 重复键错误集合:annka.transactions 索引:assets_1 重复键::null【英文标题】:MongoError: E11000 duplicate key error collection: annka.transactions index: assets_1 dup key: : null MongoError:E11000 重复键错误集合:annka.transactions 索引:assets_1 重复键::null 【发布时间】:2018-07-29 14:50:52 【问题描述】:

当我尝试将第二个文档插入到我的事务集合中时出现该错误。

架构如下

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var TransactionSchema = new Schema(
amount: 
    type: Number,
    required: true
,
reference: 
    type: String,
    required: true
,
user: 
    type: mongoose.Schema.Types.ObjectId,
    ref: 'User',
    required: true

);

TransactionSchema.index(reference:1, unique:true);

module.exports = mongoose.model('Transaction', TransactionSchema);

这是我用来插入文档的代码

var trx = new Transaction();
trx.amount = data.metadata.amount;
trx.user = data.metadata.user_id;
trx.reference = req.query.reference;
console.log(trx);
trx.save(function(err)  //save the transaction
  if(err) 
    console.log(err);
     return res.render('transaction_error', 
       title: "Payment Error", message: "Oooops....An Error occured while attempting to complete the transaction. Please wait a while and try again"
     );
   

console.log(trx) 返回 -


  reference: '3t3ktloj2j',
  user: 5a75a5a9c6e49c2be008b262,
  amount: 30000,
  _id: 5a8a902e67ddf65790ed5ddb

我已经在集合中有一个事务,这个事务与存储中的事务有不同的引用。

当我尝试添加第二个错误时,我不断收到此错误,不确定它来自哪里。

MongoError: E11000 duplicate key error collection: annka.transactions index: assets_1 dup key:  : null 

【问题讨论】:

您的收藏有唯一索引assets_1。您可以在 shell 中检查现有索引:db. transactions.getIndexes() 是的,我检查了它并且它存在,但我没有看到它,因为我复制了另一个集合的架构并为事务集合架构编辑了它。 【参考方案1】:

此错误表示您正在尝试将重复值保存到具有唯一索引的字段 - 此类字段无法存储重复值。

有关 MongoDB 中唯一索引的更多信息,请参阅:https://docs.mongodb.com/manual/core/index-unique/

【讨论】:

以上是关于MongoError:E11000 重复键错误集合:annka.transactions 索引:assets_1 重复键::null的主要内容,如果未能解决你的问题,请参考以下文章

我该如何修复(节点:14352)UnhandledPromiseRejectionWarning:MongoError:E11000 重复键错误集合:错误?

Node.js MongoError: E11000 重复键错误集合:

MongoError:E11000 重复键错误集合:workflow.compnies 索引:username_1 dup key: username:null

MongoError: E11000 重复键错误索引

MongoError,err:E11000 重复键错误

插入期间:E11000 重复键错误索引