MongoDB mongoexport查询

Chr*_*Geo 15 mongodb mongodb-query

我在MongoDB中有以下表单的集合.正如您所看到的,有些文档有两个成员"id"和"xid",有些只有1个"id"(除了Object _id)

[
    {
        "id" : 1,
    },

    {
        "id" : 2,
    },

    {
       "id" : 3
       "xid": 300
    }
]
Run Code Online (Sandbox Code Playgroud)

我想创建一个mongoexport语句,只输出id为AND xid的文档,其值为xid> 0

我目前有以下命令:

mongoexport -h host -u user -p pass --db database --collection collections --csv --fields id,xid --query '{"xid":{"$ne":0}}' --out rec.csv
Run Code Online (Sandbox Code Playgroud)

但是,这也会导出具有不带xid的id的文档.所以我得到了类似的东西

xid, id
12, 3
,4
14, 5
,3
,2
12, 5
Run Code Online (Sandbox Code Playgroud)

等等

有没有办法导出只有id和xid的文件?

小智 13

你可以使用以下命令

mongoexport -d database_name -c collection_name --csv --query { id:{$exist:true},xid:{$gt:0}}
Run Code Online (Sandbox Code Playgroud)


Jin*_*cat 7

您可以使用以下内容作为查询:

{ $and: [
    {xid: {$exists:true}},
    {xid:{$gt:0}}
    ]  
}
Run Code Online (Sandbox Code Playgroud)

$和 "对两个或多个表达式(例如,等)的数组执行逻辑AND运算,并选择满足数组中所有表达式的文档."

$ exists检查文档中是否存在特定字段.

另外,正如Vijay所指出的,在你的描述中你提到你想要xid> 0.你不应该使用$ ne(不等于),而是$ gt(大于).


vij*_*raj 5

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

  • 添加一些解释 (2认同)

Sud*_*aur 5

请记住,不支持 as of3.0.6 --csv标签,现在为了使用该用途--type=csv

下面是在数据库db_name和集合上采用 MongoExport 的查询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
Run Code Online (Sandbox Code Playgroud)