我创建了一个名为' db'的数据库。和一个名为' Dishes'的集合。我正在使用猫鼬和mongodb。以下是型号代码和服务器代码。当我运行服务器时,它显示菜肴的名称被重复,因此引发了错误的重复键错误'。我想这是因为数据库没有被删除,因此菜肴的名称(根据我的代码必须是唯一的)在运行多次时不是唯一的。但是,也可能存在不同的错误。请帮助我。谢谢!
这是服务器代码。
var assert=require('assert');
var mongoose=require('mongoose');
var Dishes=require('./models/dishes1mongoose');
var url='mongodb://localhost:27017/conFusion';
mongoose.connect(url);
var db=mongoose.connection;
db.on('error', console.error.bind(console, 'connection error: '));
db.once('open', function(){
//connected to the server
console.log("Connected to the server successfully");
Dishes.create({
name: 'Uthapizza', description: 'I dont know'
}, function(err, dish){
if (err) throw err;
console.log(dish);
var id=dish._id;
Dishes.findByIdAndUpdate(id, {$set:{description: 'Updated version of I still dont know'}}, {new: true})
.exec(function(err, dish){
if (err) throw err;
console.log(dish);
db.collection("Dishes").drop(function(){
db.close();
});
});
});
});
这是猫鼬模型的代码。
var mongoose=require('mongoose');
var Schema=mongoose.Schema;
//create a Schema
var dishSchema= new Schema({
name : {type: String, required: true, unique: true},
description : {type: String, required: true}
},
{
timestamps: true
});
//create a collection that uses this Schema. It will be of the name that is plural of the argument "Dish".
var Dishes=mongoose.model("Dish", dishSchema);
//make it available elsewhere
module.exports=Dishes;
答案 0 :(得分:0)
尝试使用以下内容:
mongoose.connection.collections['Dishes'].drop(cb)