MongoDB - $size 的参数必须是一个数组,但类型为 : EOO/missing

尝试使用 icCube 创建 MongoDB 数据源.这个想法是将数组的大小作为新字段返回。类似的东西:

$project:
{ 
 "people": 1, 
 "Count myFieldArray" : {$size : "$myFieldArray" }
}

但我收到以下错误记录:

The argument to $size must be an Array, but was of type: EOO

如果字段为空或不是数组,有没有办法将大小设为 0(消除错误)?

最佳答案

您可以使用 $ifNull运营商在这里。似乎该字段不是数组或给定错误不存在:

{ "$project": {
    "people": 1,
    "Count": { 
        "$size": { "$ifNull": [ "$myFieldArray", [] ] }
    }
}}

您可能还想检查 $type在您的$match如果这些确实存在但不是数组。

https://stackoverflow.com/questions/24201120/

相关文章:

mongodb - 在 mongodb 中运行 javascript 脚本(.js 文件),包括 j

.net - 我应该使用哪个 NoSQL 数据库进行日志记录?

python - 如何使用 PyMongo 在 MongoDB 中创建新数据库?

mongodb - 在 MongoDB 中查找最大的文档大小

mongodb - Mongoose 中权重的全文搜索

mongodb - 如何在 Mongo 中描述一个集合?

node.js - Mongoose 'static' 方法与 'instance' 方法

mysql - 何时使用 MongoDB

python - 集合对象不是 PyMongo 的可调用错误

node.js - 为什么我们应该使用 mongoose ODM 而不是直接使用 Mongodb 和