删除mongodb中非utf-8字符的数据库

时间:2016-11-10 19:49:16

标签: mongodb

下午好。

如何删除非utf-8字符的数据库?

参见附件显示数据库由show dbs命令显示

感谢您的关注

此致enter image description here

Alexandre Bunn

1 个答案:

答案 0 :(得分:1)

通常你会这样做

#include <stdio.h>
#define MAX 8

struct move {
int left;
int right;
int up;
int down;
};

int main()
{
        struct move moves[MAX]={[0 ... MAX-1].right = 1};

        printf("...%d\n",moves[0].left);
        printf("...%d\n",moves[1].right);
        printf("...%d\n",moves[2].right);
        printf("...%d\n",moves[3].right);
        printf("...%d\n",moves[4].right);
        printf("...%d\n",moves[5].right);
        printf("...%d\n",moves[6].right);
        printf("...%d\n",moves[7].right);
        return 0;
}

use [db]; db.dropDatabase(); 命令的实际作用是将数据库对象放到use。使用UTF-8数据库名称,您可能会发现无法运行db命令。作为获取use对象的替代方法,您可以运行db然后删除它 所以这应该可以解决问题:

db.getSisterDB([db name])

还有另一种方法var db2 = db.getSisterDB(emptyDbs[0].name); db2.dropDatabase(); ,它返回相同的getSiblingDB对象。如果你想知道它们之间有什么区别,那么,没有区别。

db

修改 由于上述解决方案不适合您。我认为您可以尝试的最后一件事是转到replset:PRIMARY> db.getSiblingDB function (name) { return this.getMongo().getDB(name); } replset:PRIMARY> db.getSisterDB function (name) { return this.getMongo().getDB(name); } ,找到由UTF-8字符命名的文件并删除它们。您可能不会以该名称提交任何文件。因为当您看到(空)跟随数据库名称时,通常意味着删除了数据库。如果是这样,只需重新启动实例就可以解决问题 请记住在执行此操作之前停止数据库。在做任何事情之前做备份。

这种方式仅适用于MMAPv1存储引擎。