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

database-profiling-and-shardingから:

mongos インスタンスでプロファイリングを有効にすることはできません。シャード クラスターでプロファイリングを有効にするには、クラスター内の各 mongod インスタンスのプロファイリングを有効にする必要があります。

また、mongoexport は 1 つのシャードに相当するデータのみをエクスポートすることも確認してください(ただし、このバグは 1.9.1 以降で修正されており、より新しいバージョンを使用しています)。

したがって、必要なコレクションを保持するmongodインスタンスmongoexportから直接試してください。system.profile

**UPDATE**

2つ目の方法は、mongoexport を使用せずに、mongo シェルからコレクションを直接取得することです (mongo シェル内からコレクションを表示できるため)。

これを行うには、最初に次のスクリプトを記述して保存します。print-profile.js

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

次に、bash シェルから次の行を実行します。

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

少し待つと、profile.json必要なデータが表示されます。

于 2013-07-26T13:54:35.817 に答える