我有一个在mongoBash中使用的查询(聚合一)的场景,它可以被存储在一个文件中,并使用JAVA Spring Boot 应用程序执行。如果可能的话,你能分享一个例子吗?也可以从JAVA传递参数到存储在文件中的查询吗?
owfi6suc1#
写它作为答案因为它是相当大的:没有像mongoBash这样的工具,我假设您需要执行从mongo shell(遗留版本是mongo或现代版本是mongosh)获取的查询。然后,Java驱动程序中没有内置的方法来执行它,因为:
mongoBash
mongo shell
mongo
mongosh
db.RunCommand(..)
--eval
1条答案
按热度按时间owfi6suc1#
写它作为答案因为它是相当大的:
没有像
mongoBash
这样的工具,我假设您需要执行从mongo shell
(遗留版本是mongo
或现代版本是mongosh
)获取的查询。然后,Java驱动程序中没有内置的方法来执行它,因为:1.您可以在java驱动程序中使用
db.RunCommand(..)
,它允许您以MQL(mongo查询语言,与shell语法完全不同)提供查询,但一次只能提供一个命令。然而,你可以通过运行带
--eval
参数的mongo shell二进制来使用java中的shell功能,而不需要java驱动程序。要使它在java中工作,你需要生成mongo进程,在--eval
参数中提供适当的js/shell代码,然后读取输出流。你可以在这里阅读我对c#的回答。Java代码应该看起来类似