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)
您可以使用以下内容作为查询:
{ $and: [
{xid: {$exists:true}},
{xid:{$gt:0}}
]
}
Run Code Online (Sandbox Code Playgroud)
$和 "对两个或多个表达式(例如,等)的数组执行逻辑AND运算,并选择满足数组中所有表达式的文档."
$ exists检查文档中是否存在特定字段.
另外,正如Vijay所指出的,在你的描述中你提到你想要xid> 0.你不应该使用$ ne(不等于),而是$ gt(大于).
mongoexport --db db_name --collection collection_name --query "{'Name':'Vijil'}" --out file_name.json
请记住,不支持 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)