我正在使用MongoDB,我有以下记录:
{ 名称:“a”, 状态: [ {年龄:15岁,关闭:真}, {年龄:38岁,已结束:真}, {年龄:42岁,关闭:假}, ]},{ …
尝试聚合
db.collection.aggregate([ { $project: { last: { $arrayElemAt: [ "$status", -2 ] }, } }, {$addFields:{ ageInString: { $substr: [ "$last.age", 0, 3 ] } }}, {$match:{ageInString:{ $regex: '^2' }}} ])
您可以使用 的 $indexOfCP 强> 在字符串字符中查找子字符串
$indexOfCP
db.collection.find({ "$expr": { "$ne": [ { "$indexOfCP": [ { "$toLower": { "$let": { "vars": { "beforeLast": { "$arrayElemAt": [ "$status", -2 ] } }, "in": "$$beforeLast.age" } }}, "2" ] }, -1 ] } })