MongoDB mongoexport查询

时间:2014-01-30 13:42:50

标签: mongodb mongodb-query

我在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的文档?

6 个答案:

答案 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