我在MongoDB中有以下表单的集合。 你可以看到一些文档有两个成员“id”和“xid”,有些只有1个“id”(除了Object _id)
[
{
"id" : 1,
},
{
"id" : 2,
},
{
"id" : 3
"xid": 300
}
]
我想创建一个mongoexport语句,该语句只向csv导出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
但是,这也导出了没有xid的id的文档。所以我得到像
这样的东西xid, id
12, 3
,4
14, 5
,3
,2
12, 5
等
有没有办法导出只有id和xid的文档?
答案 0 :(得分:11)
您可以使用以下命令
mongoexport -d database_name -c collection_name --csv --query { id:{$exist:true},xid:{$gt:0}}
答案 1 :(得分:7)
您可以使用以下内容作为查询:
{ $and: [
{xid: {$exists:true}},
{xid:{$gt:0}}
]
}
$and“对两个或多个表达式(例如,等)的数组执行逻辑AND运算,并选择满足数组中所有表达式的文档。”
$exists检查文档中是否存在特定字段。
另外,正如Vijay所指出的那样,在你的描述中你提到你想要xid>你不应该使用$ ne(不等于),而是$ gt(大于)。
答案 2 :(得分:4)
您可以将查询更改为
--query {id: {$exists : true}, xid: {$gt : 0}}
以上查询将仅返回具有id字段且值为xid>的文档。 0.因此,如果有任何文件只有id字段而不是xid,则不会返回这些文件。
答案 3 :(得分:3)
mongoexport --db db_name --collection collection_name --query" {'姓名':' Vijil'}" --out file_name.json
答案 4 :(得分:1)
从上面给出的文档看来,它似乎是一个文档数组,但是你没有访问文档。符号。好像你正在错误地访问文档。
应该是'{"key.xid":{"$ne":0}}'
答案 5 :(得分:0)
现在不支持从-
-
标记起记住,以便使用3.0.6
下面是对数据库--csv
和集合--type=csv
进行MongoExport的查询,请记住还要指定字段名称(要在csv文件中添加的字段)。
db_name