mongodb mongoexport可以接受JavaScript文件扩展名(.js)作为--queryFile选项吗?

zbdgwd5y  于 2023-05-17  发布在  Go
关注(0)|答案(1)|浏览(162)

想知道mongoexport --queryFile是否可以接受js文件?如果只有json,那么如何满足此查询db.CustomerDocument.aggregate({ $project:{“_id”:1,“国家”:1,“date”:{ $toDate:“$CustomerOnlineActiveDate”} } })
由于--queryFile值,以下命令运行时出错。

  1. mongoexport --uri "mongodb+srv://..." --username myUser --password myPassword --db CustomerDb --collection Customer --fields _id,Country,date --type csv --queryFile c:\test\FromMongo\AccountConversion.json --out c:\test\Mini.csv

在这个mongoexport命令中,如果我只是删除--queryFile及其分配的路径,它可以工作,但情况是我需要执行以下查询。
查询文件中的文本如下。在mongo shell上,它可以毫无问题地执行。

  1. db.CustomerDocument.aggregate({
  2. $project: {
  3. "_id": 1,
  4. "Country": 1,
  5. "date": {
  6. $toDate: "$CustomerOnlineActiveDate"
  7. }
  8. }
  9. })

我遇到的错误是:[]'不是有效的JSON:无效字符'd'正在查找值的开头。
作为替代方案,我创建了一个.json文件,其中包含以下内容:

  1. {"$project":{"_id":1,"Country":1,"date":{"$toDate":"$CustomerOnlineActiveDate"}}}

并相应地更改了这个.json文件的路径,但仍然得到以下错误:
我遇到的错误是:[]'不是有效的JSON:查找对象关键字字符串开头的字符“\”无效。

ao218c7q

ao218c7q1#

您正在传递一个需要查询过滤器的投影。
从文档:
--queryFile=
指定包含JSON文档的文件的路径作为查询过滤器,该过滤器限制mongodump输出中包含的文档。--queryFile允许您创建太大而无法放入终端缓冲区的查询过滤器。
查询筛选器必须是包含查询运算符的JSON文档。
您可以通过两个步骤获得您正在寻找的内容:

  • 使用投影运行聚合,并使用$out stage将结果存储在临时集合中
  • mongoexport从临时集合

相关问题