3

我正在尝试导出:

ilya@server ~]$ mongoexport --host localhost --port 27000  --collection system.users --db mydb --out profile.json                
connected to: localhost:27000
exported 1 records

工作正常system.users

但不适用于system.profile

[ilya@server ~]$ mongoexport --host localhost --port 27000  --collection system.profile --db mydb --out profile.json
connected to: localhost:27000
exported 0 records

集合不为空:

[ilya@server ~]$ mongo localhost:27000/mydb
MongoDB shell version: 2.2.3
connecting to: localhost:27000/mydb
mongos> db.system.profile.count();
1044

我需要将这些行导出并在某处使用它们,例如与普通集合一样(不封顶为system.profile)。

4

1 回答 1

3

数据库分析和分片

您不能在 mongos 实例上启用分析。要在分片集群中启​​用分析,您必须为集群中的每个 mongod 实例启用分析。

另请参阅mongoexport 仅导出一个分片的数据(尽管此错误自 1.9.1 以来已修复,并且您使用的是更高版本)

因此,请尝试mongoexport直接从包含您想要的集合的mongod实例中获取。system.profile

**UPDATE**

第二种方法是不使用 mongoexport 而是直接从 mongo shell 获取集合(因为您可以从 mongo shell 内部看到集合)。

为此,首先编写以下脚本并将其保存到print-profile.js

c = db.system.profile.find();
while(c.hasNext()) {
  printjson(c.next());
}

然后从 bash shell 执行以下行:

mongo localhost:27000/mydb print-profile.js  > profile.json

稍等一下,profile.json您将获得所需的数据。

于 2013-07-26T13:54:35.817 回答