使用java代码在文件中运行mongoDb查询投影

vkc1a9a2  于 2022-12-18  发布在  Go
关注(0)|答案(1)|浏览(150)

我有一个在mongoBash中使用的查询(聚合一)的场景,它可以被存储在一个文件中,并使用JAVA Spring Boot 应用程序执行。如果可能的话,你能分享一个例子吗?也可以从JAVA传递参数到存储在文件中的查询吗?

owfi6suc

owfi6suc1#

写它作为答案因为它是相当大的:
没有像mongoBash这样的工具,我假设您需要执行从mongo shell(遗留版本是mongo或现代版本是mongosh)获取的查询。然后,Java驱动程序中没有内置的方法来执行它,因为:

  1. Shell语法仅在Shell中受支持,在驱动程序中不受支持。
    1.您可以在java驱动程序中使用db.RunCommand(..),它允许您以MQL(mongo查询语言,与shell语法完全不同)提供查询,但一次只能提供一个命令。
    然而,你可以通过运行带--eval参数的mongo shell二进制来使用java中的shell功能,而不需要java驱动程序。要使它在java中工作,你需要生成mongo进程,在--eval参数中提供适当的js/shell代码,然后读取输出流。你可以在这里阅读我对c#的回答。Java代码应该看起来类似

相关问题