【问题标题】:Mongoexport error parsing queryMongoexport 错误解析查询
【发布时间】:2014-01-30 12:35:21
【问题描述】:

我正在尝试对 CSV 进行 mongoexport,但只选择带有查询的某些记录。这是我的命令(Windows 7 cmd):

mongoexport --host foo.com --port 27017 --username bar -p --db foo --csv --fields col1,col2,col3 --collection bar --out dump_q.csv --query '{"recent":"yes"}'

但是输入密码后,我得到一个错误:

assertion: 16619 code FailedToParse: FailedToParse: Expecting '{': offset:0

该命令在没有查询参数的情况下工作正常,但我无法弄清楚查询有什么问题:

--query '{"recent":"yes"}'

非常感谢任何帮助


答案总结:

  1. 确保在查询时使用双引号,在字符串中使用单引号,例如

    --查询“{'recent':'yes'}”

  2. 还要确保您的查询中没有空格,否则命令提示符会将其解析为另一个参数。所以没有

    --查询“{'recent':'yes'}” (注意中间的空格)

  3. 包含嵌套字段的查询不起作用,例如:

    --查询“{'folder.recent':'yes'}”

【问题讨论】:

  • 如果我需要添加空格怎么办?在创建日期:new Date()?

标签: mongodb mongoexport


【解决方案1】:

您需要使用双引号来包含查询字符串(以及单引号或两个引号以在字符串内转义)

--query "{'recent':'yes'}"

完成:

mongoexport --host foo.com --port 27017 --username bar -p
        --db foo --csv --fields col1,col2,col3 
        --collection bar --out dump_q.csv --query "{'recent':'yes'}"

【讨论】:

  • 您提供的行正如我所描述的那样工作(我试过了)。我想您正在尝试使用更复杂的命令行?
  • (我第一次尝试时有一个空格,例如“{'recent': 'yes'}”)
【解决方案2】:

来自mongoexport documentation

--查询, -q

Provides a JSON document as a query that optionally limits the documents returned in the export.

您的查询字符串格式似乎正确。您甚至可以省略 recent 周围的双引号。

单引号或双引号似乎无关紧要,只要您坚持在外部和内部使用不同的类型即可。

你确定这是一个有效的查询吗?如果在数据库中运行以下命令,输出是什么? find() 呢?

db.bar.count({"recent":"yes"})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-22
    • 2013-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多