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中使用。
发布于 2015-04-06 07:30:51
在我看来,您的$and子句是不必要的。{a: 'a', b: 'b'}和$and : [{a: 'a'}, {b: 'b'}]是一样的。
您也不需要使用"id",您只需编写id,同样适用于NumberLong。
因此,我会将其重写为... --query '{id: "ABCD", sz: {$gt: 100}}' --out dump,它可以工作(如果您在单引号中,则不要转义$)。
https://stackoverflow.com/questions/29466550
复制相似问题