此触发器自动添加一个值为 null 的年龄字段。我想知道如何添加一个条件,如果存在 dob_date 字段和值,它只会添加具有正确值的年龄字段。
exports = function() {
const collection = context.services.get("Cluster0").db("app-data").collection("users")
const doc = collection.updateMany(
{},
[{
$set: {
age: { $dateDiff:
{ startDate:
{ $dateFromString:
{
dateString:"$dob_date"
}
}
, endDate: "$$NOW", unit: "year"
}
}
}
}]
)
return doc;
}
您可以通过
dob_date
运算符或 $type
运算符使用值过滤和更新包含 $exists
字段的文档。
参考:查询空或缺失字段
const doc = collection.updateMany({
$expr: {
$not: {
$in: [
{
$type: "$dob_date"
},
[
"missing",
"null"
]
]
}
}
},
[
{
$set: {
age: {
$dateDiff: {
startDate: {
$dateFromString: {
dateString: "$dob_date"
}
},
endDate: "$$NOW",
unit: "year"
}
}
}
}
])