Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了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,再次运行程序,仍然是同样的问题,它如何允许索引上的重复数据?

解决方法

您的传递的scheR_655_11845@a对象可能无法正常工作,因为您将“unique”属性嵌套到“index”属性中,尝试这样(它的工作原理):

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,请注明来意。