我正在准备一个用Node.js和Mongoose创建数据库的脚本。我如何检查数据库是否已经存在,如果存在,使用Mongoose删除它?
我找不到办法把它和Mongoose放在一起。
发布于 2012-04-10 20:01:33
没有从mongoose中删除集合的方法,最好的做法是删除其中一个的内容:
Model.remove({}, function(err) {
console.log('collection removed')
});
但是有一种方法可以访问mongodb本机javascript驱动程序,该驱动程序可用于此目的
mongoose.connection.collections['collectionName'].drop( function(err) {
console.log('collection dropped');
});
警告
在尝试之前进行备份,以防出现任何错误!
发布于 2012-04-29 10:25:06
如果连接上还不存在数据库,Mongoose将创建一个数据库,因此一旦您建立了连接,您就可以查询它,看看其中是否有任何内容。
您可以删除连接到的任何数据库:
var mongoose = require('mongoose');
/* Connect to the DB */
mongoose.connect('mongodb://localhost/mydatabase',function(){
/* Drop the DB */
mongoose.connection.db.dropDatabase();
});
发布于 2012-06-04 22:35:15
如果您像这样修改@hellslam的解决方案,那么它将会工作
在集成测试之后,我使用此技术删除数据库
//CoffeeScript
mongoose = require "mongoose"
conn = mongoose.connect("mongodb://localhost/mydb")
conn.connection.db.dropDatabase()
//JavaScript
var conn, mongoose;
mongoose = require("mongoose");
conn = mongoose.connect("mongodb://localhost/mydb");
conn.connection.db.dropDatabase();
HTH至少对我来说是这样的,所以我决定分享=)
https://stackoverflow.com/questions/10081452
复制相似问题