gpt4 book ai didi

mongodb - Mongo 查询在 mongo shell 中有效,但在 bash mongo --eval 中无效?

转载 作者:可可西里 更新时间:2023-11-01 09:59:22 26 4
gpt4 key购买 nike

这是一个示例查询:

db.readings.find( {"_id.s": ISODate("2012-11-01T00:05:00Z") }).count()

查询在 mongo shell 中工作。但是,在 bash 脚本中或直接在 Ubuntu shell 中

mongo fivemin --eval "printjson(db.readings.find( {"_id.s": ISODate("2012-11-01T00:05:00Z") }).count())"

返回 SyntaxError: missing : after property id (shell eval):1

我似乎找不到查询的问题。我恢复到 { "_id": {"s": ...} } } ,它仍然会出现同样的问题。 find().count() 然而有效。

最佳答案

在 bash shell 中有同样的问题。

由于双引号,这将失败:

mongo fivemin --eval "printjson(db.readings.find( {"_id.s" : ISODate("2012-11-01T00:05:00Z") } ).count())"

但是在单引号中使用 eval 字符串是可行的:

mongo fivemin --eval 'printjson(db.readings.find( {"_id.s" : ISODate("2012-11-01T00:05:00Z") } ).count())'

如果你使用像 $regex 这样的 $ 符号,你需要转义它:

mongo fivemin --eval 'printjson(db.readings.find( {"_id.s" : {"\$regex":"2012-11-01T*"} } ).count())'

关于mongodb - Mongo 查询在 mongo shell 中有效,但在 bash mongo --eval 中无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15435838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com