web-dev-qa-db-ja.com

MongoDB mongoexportクエリ

MongoDBには次のフォームのコレクションがあります。ご覧のとおり、一部のドキュメントには2つのメンバー「id」と「xid」があり、一部には1つの「id」しかありません(Object _idを除く)

[
    {
        "id" : 1,
    },

    {
        "id" : 2,
    },

    {
       "id" : 3
       "xid": 300
    }
]

IdがAND xidでxid> 0の値を持つドキュメントのみをcsvにエクスポートするmongoexportステートメントを作成したい

現在、次のコマンドがあります。

mongoexport -h Host -u user -p pass --db database --collection collections --csv --fields id,xid --query '{"xid":{"$ne":0}}' --out rec.csv

ただし、これは、xidのないidを持つドキュメントもエクスポートします。だから私は次のようなものを得る

xid, id
12, 3
,4
14, 5
,3
,2
12, 5

等.

Idとxidの両方しかないドキュメントをエクスポートする方法はありますか?

15
ChrisGeo

クエリとして次を使用できます。

{ $and: [
    {xid: {$exists:true}},
    {xid:{$gt:0}}
    ]  
}

$ and "2つ以上の式(例:など)の配列に対して論理AND演算を実行し、配列内のすべての式を満たすドキュメントを選択します。"

$ exists ドキュメントに特定のフィールドが存在するかどうかを確認します。

また、Vijayが指摘しているように、説明ではxid> 0が必要であると述べています。$ ne(等しくない)ではなく、$ gt(より大きい)を使用する必要があります。

7
Jinxcat

以下のコマンドを使用できます

mongoexport -d database_name -c collection_name --csv --query { id:{$exist:true},xid:{$gt:0}}
13
Darshan J

クエリを次のように変更できます

--query {id: {$exists : true}, xid: {$gt : 0}}

上記のクエリは、idフィールドがあり、xid> 0の値を持つドキュメントのみを返します。したがって、xidではなくidフィールドのみを持つドキュメントがある場合、それらのドキュメントは返されません。

4
Vicky

mongoexport --db db_name --collection collection_name --query "{'Name': 'Vijil'}" --out file_name.json

3
vijin selvaraj

上記のドキュメントからは、ドキュメントの配列のように見えますが、uはなしでドキュメントにアクセスしています。表記法。文書に誤ってアクセスしているようです。

'{"key.xid":{"$ne":0}}'のようなものでなければなりません

1
arunb2w

3.0.6--csvタグはサポートされていませんが、使用するために--type=csv

以下は、データベースでMongoExportを使用するクエリですdb_nameおよびコレクションcollection_name、フィールド名も指定することを忘れないでください(csvファイルに追加するフィールド)。

Sudo mongoexport -d db_name -c collection_name --type=csv --query='{field1:{$gt:2}}' -f "field1,field2" --sort='{field1:-1}' -u 'username' -p 'passwd' --authenticationDatabase=admin --out dir/file.csv
0
Sudhanshu Gaur