Mongodb 使用Mongo 3.2.9将字符串聚合为Int到

Mongodb 使用Mongo 3.2.9将字符串聚合为Int到,mongodb,Mongodb,我遇到的问题是将字符串转换为整数以创建平均值。我知道在以后的版本中使用$convert,但我找不到使用$toInt术语的正确位置。我知道在单个示例的命令行上使用此关键字进行转换,但是我应该将其放在聚合框架中的何处 db.my_batch.aggregate([{"$unwind": "$current.Data.x"}, {"$match": {"current.Data.x.Typ": "01", "current.Data.x.Value": {"$lt": "TTTT"}}}, {"$pr

我遇到的问题是将字符串转换为整数以创建平均值。我知道在以后的版本中使用$convert,但我找不到使用$toInt术语的正确位置。我知道在单个示例的命令行上使用此关键字进行转换,但是我应该将其放在聚合框架中的何处

db.my_batch.aggregate([{"$unwind": "$current.Data.x"}, {"$match": {"current.Data.x.Typ": "01", "current.Data.x.Value": {"$lt": "TTTT"}}}, {"$project": {"current.Data.x.Value": 1, "uId":1}}, {"$group": {"_id": null, "ad": {"$avg": {"$toInt": "$current.Data.x.Value"}}}} ])
我得到以下回应:

2018-07-20T17:19:42.707+0200 E QUERY    [thread1] Error: command failed: {
    "ok" : 0,
    "errmsg" : "Unrecognized expression '$toInt'",
    "code" : 168,
    "codeName" : "InvalidPipelineOperator"
} : aggregate failed :

由于$toInt和$convert运算符仅在mongodb 4.0中添加,因此最好更改数据库中的字段类型并在之后进行查询。

$toInt
是在4.0中与
$convert
@johnyhk一起添加的,对于3.2.9中的简单情况,我可以执行此命令:>$toInt:“1”1。但是现在当我检查其他关键字示例时,我们发现:$toInt:“1.6777”给出1.6777。没有错误,只是没有按预期运行。也许您有一个4.0 Mongo shell,但有一个旧服务器?为什么不将服务器升级到最新版本?它还具有一系列安全性和性能增强功能!您可能希望看到以下答案: