Mongodump查询错误

时间:2015-04-06 06:38:44

标签: mongodb mongodump

mongodump --username user --password password --db db --collection collection --query '{$and: [{"id": "ABCD"}, {"sz": {$gt: NumberLong(100)}}]}' --out dump

执行时,mongodump抱怨:

assertion: 16619 code FailedToParse: FailedToParse: Bad characters in value: offset:63

如果我逃避$and$gt条款:

mongodump --username user --password password --db db --collection collection --query '{\$and: [{"id": "ABCD"}, {"sz": {\$gt: NumberLong(100)}}]}' --out dump

它反而会抱怨

assertion: 16619 code FailedToParse: FailedToParse: First character in field must be [A-Za-z$_]: offset:1

此查询在mongodb shell上成功运行,我无法理解为何我无法将其用作--query中的mongodump参数。

1 个答案:

答案 0 :(得分:2)

在我看来,你的$和子句不是必需的。 {a: 'a', b: 'b'}$and : [{a: 'a'}, {b: 'b'}]相同。

您也不需要使用"id",只需为id撰写NumberLong即可。

所以我会将其重写为... --query '{id: "ABCD", sz: {$gt: 100}}' --out dump,它可以正常工作(如果你在单引号中,你就不要逃避$。)