MongoDB:无法解析没有onError值的$convert中的objectId:解析为OID的字符串长度无效,预期为24,但发现为0



我正在创建一个聚合查询,但我的一些字段遇到了问题,需要转换为ObjectID'。有些文档的字段中没有任何内容(null,"(,所以我想忽略这些情况。

{
"$project": {
"Company": {
"$toObjectId": "$Company"
},
"Lease": {
"$toObjectId": "$Lease"
},
"Well": {
"$toObjectId": "$Well"
}
}

我试过类似的东西:

{$ifNull: [{ $toObjectId: "$Company" }, ''] }

但我仍然收到错误。

解决这个问题的最佳方法是什么?

我意识到我使用的是$toObjectId的简短语法,它没有onNull或onError选项。

我需要恢复到$convert:

{$convert: {input: '$Company', to : 'objectId', onError: '',onNull: ''}}

db.<collectionname>.aggregate([{$group: {_id:"$_id", avg_val:{$avg: {$toInt:{$trunc:{$multiply:[{$toDouble:"$value"},100]}}}}}}])

最新更新