gpt4 book ai didi

node.js - 如何通过 mongodb 和 node.js 删除所有集合?

转载 作者:搜寻专家 更新时间:2023-10-31 22:19:27 24 4
gpt4 key购买 nike

我是 node.js 和 mongodb 的新手,我有以下问题:我需要从 node.js 文件中删除我的 mongodb 中的所有集合。我有这样一个功能:

service.dropCollections = function(db, colls){
for(var i = 0; i < colls.length; i++){
var name = colls[i].name;
db.dropCollection(name, function(err) {
if(!err) {
console.log( name + " dropped");
} else {
console.log("!ERROR! " + err.errmsg);
}
});
}
}

我在以下函数中使用它:

service.clearDB = function() {
var MongoClient = require('mongodb').MongoClient
, format = require('util').format;

MongoClient.connect('mongodb://127.0.0.1:27017/shiny_d', function(err, db){
if(err) throw err;
db.collectionNames(function(err, collections){
if(!err){
service.dropCollections(db, collections);
} else {
console.log("!ERROR! "+ err.errmsg);
}
service.showCollections();
});
});
}

作为输出我有

!ERROR! ns not found

shiny_db.physicalinfos

不知道现在该做什么。非常感谢您的帮助。

最佳答案

如果您只是删除整个数据库,是不是会更快、更容易并且更不容易出错?

db.dropDatabase();

至少在 Mongo CLI 中,每当您访问不存在的数据库时,它会在您创建数据后立即保留。这与从中删除所有集合相同。

除了学习,我还没有尝试过MongoDB,所以我对权限了解不多。因此,删除整个数据库的唯一问题可能是您的用户的权限会丢失(我相信)。

如果您尝试创建的这个脚本不用于生产,那么您可以删除数据库。

关于node.js - 如何通过 mongodb 和 node.js 删除所有集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17534513/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com