答案 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存储引擎。