python - 如何在 mongodb 中查找包含 NaN 值的字段的 $avg 和 $sum?
问题描述
$group
当我使用 mongo cli 或 JavaScript 时,我可以在 mongodb 中使用子句之前找到并限制包含 NaN 值的列。但是,当我使用 python 及其主要库“pymongo”时,它似乎无法做到这一点。如下代码 NaN 不是 python 语法的一部分。而在 javaScript 中它是简单直接的。任何身体都有同样的问题?
javascript
db.getCollection('plan.data_pool').aggregate([
{'$match':{geoid:'00','v':{"$ne":NaN}}},{"$group":{"_id":"$accountable_id","agg":{"$sum":"$v"}}}
])
蟒蛇(pymongo)
db['plan.data_pool'].aggregate([{'$match':{geoid:'00','v':{"$ne":NaN}}},
{"$group":{"_id":"$accountable_id","agg":{"$sum":"$v"}}}
收集的样本文件data_pool
是这样的:
{
"_id" : ObjectId("619149fa0f91f1b3954f7128"),
"opg" : "sum",
"opt" : "sum",
"code" : "9-8-1-1-1-7",
"responsible" : [
"61"
],
"parent_id" : "610a6abb566701e77a214355",
"accountable_id" : "59",
"data_item" : "610a6c49566701e77a21435c",
"geoid" : "HQ",
"year" : 2019 ,
"period" : "3M",
"tf" : 3,
"w" : 100.0,
"p" : 6.0,
"v" : NaN,
"r" : 33.3333333333333,
"plan" : "60d2ce9cc0b1f833dbd9563a"
}
解决方案
MongoDB 中的NaN
值由float('NaN')
pymongo 表示,因此您可以使用:
{'v': {'$ne': float('NaN')}}
推荐阅读
- capl - 如何使用 CAPL 脚本或任何其他可能的方式测试 CanTp 协议中的 N_As、N_Ar 超时参数?
- .net - .Net 框架 4.7.2 中 HttpCookie.SameSite 选项的构建失败
- spring-hateoas - 带有 Traverson 客户端和 java.time.Instant 的 Spring HATEOAS
- iis - 具有多个规则的 IIS 反向代理
- mysql - Mysql - 选择具有链接值的行
- python-3.x - 在跳过某些对象时获取列表中的不同部分
- typescript - 实现接口或接口扩展的函数参数
- flutter - 如何在 Windows 上以 HTML 格式查看 Flutter/dart 的覆盖率报告
- angular - Angular 7 可重用的 ng 模板
- postgresql - Grails空标识符错误有时会出现而没有解释