大佬教程收集整理的这篇文章主要介绍了node.js – Mongoose与模式密钥唯一重复,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
task.js
function make(scheR_655_11845@a,mongoosE) { var Tasks = new scheR_655_11845@a({ project: { type: String,index: { unique: true,dropDups: true }},description: String }); mongoose.model('Task',Tasks); } module.exports.make = make;
test.js
var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/@L_874_1@'); var scheR_655_11845@a = mongoose.scheR_655_11845@a,ObjectId = scheR_655_11845@a.objectId; require('./task.js').make(scheR_655_11845@a,mongoosE); var Task = mongoose.model('Task'); var newTask = new Task({ project: 'StarTing new project',description: 'New project in node' }); newTask.save(function(err) { if (err) console.log('Error on saving'); }); mongoose.disconnect();
当我使用Node test.js运行应用程序时,仍然会创建重复项。
@H_661_9@mongoDB sHell version: 2.0.2 connecTing to: @L_874_1@ > db.tasks.find() > db.tasks.find() { "project" : "StarTing new project","description" : "New project in node","_id" : ObjectId("4f21aaa3d48d4e1533000001") } { "project" : "StarTing new project","_id" : ObjectId("4f21aaa4d9a8921a33000001") } { "project" : "StarTing new project","_id" : ObjectId("4f21aaa57ebeea1f33000001") }
//编辑仍然是同样的问题,这是我试图做的
删除db.tasks.drop()集合
重新启动mongo sudo停止mongodb并启动mongodb,再次运行程序,仍然是同样的问题,它如何允许索引上的重复数据?
User = mongoose.model('User',new scheR_655_11845@a({ firstName: { type:string,required: true,},lastName: { type:string,email: { type:string,unique: true },address: String,phone: { type:string,password: { type:string,set: Data.prototype.saltySha1 // some function called before saving the data },role: String },{Strict: truE}));
或者更具体地为你的例子:
var Tasks = new scheR_655_11845@a({ project: { type: String,unique: true,index: true },description: String });
注意:我不知道你对“dropDups”参数有什么影响,它似乎不在mongoose documentation。
以上是大佬教程为你收集整理的node.js – Mongoose与模式密钥唯一重复全部内容,希望文章能够帮你解决node.js – Mongoose与模式密钥唯一重复所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。