db.collection(collection_name)。drop()无法正常工作。创建的数据库未被删除

时间:2016-10-04 08:32:33

标签: node.js mongodb mongoose mongoose-schema database

我创建了一个名为' 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;

1 个答案:

答案 0 :(得分:0)

尝试使用以下内容:

mongoose.connection.collections['Dishes'].drop(cb)

https://stackoverflow.com/a/10088410/4442630