我的sql查询如下所示:
CASE WHEN ( DATALENGTH(school) > 0 ) THEN school ELSE 'na' END
我想要相同的mongo查询:
我试过
school:
{
$cond: [{ $gte : ["school", 0]}, school, 'na']
}
但它没有用。任何人都可以帮我这个吗?
答案 0 :(得分:1)
您可以使用aggregation framework,尤其是 $ifNull
管道中的 $project
表达式返回如果school
字段为空或不存在,则为非null school
字段值或字符串“na”:
db.collection.aggregate([
{
"$project": {
"school": { "$ifNull": [ "$school", "na" ] }
}
}
])
答案 1 :(得分:1)
$ cond表达式也应该有效:
db.catalog.aggregate([{
$project : {
school : { $cond : [ {$gt : ["$school", 0]}, "$school", "na" ] }
} }])