db.collection(collection_name).drop() 不工作。创建的数据库没有被删除
Posted
技术标签:
【中文标题】db.collection(collection_name).drop() 不工作。创建的数据库没有被删除【英文标题】:db.collection(collection_name).drop() not working. The database created is not being dropped 【发布时间】:2017-02-12 08:16:48 【问题描述】:我创建了一个名为“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;
【问题讨论】:
我什至把'unique: false'放在模型代码中,暂时避免这种情况,但它仍然给出同样的重复错误。我在这里真的很困惑! 【参考方案1】:尝试使用以下内容:
mongoose.connection.collections['Dishes'].drop(cb)
https://***.com/a/10088410/4442630
【讨论】:
以上是关于db.collection(collection_name).drop() 不工作。创建的数据库没有被删除的主要内容,如果未能解决你的问题,请参考以下文章