如何通过属性大小未达到特定数字或在Mongoose中为空或null的值获取对象
我有一个属性为如何通过属性大小未达到特定数字或在Mongoose中为空或null的值获取对象,mongoose,Mongoose,我有一个属性为bvn的mongoose模式,bvn值的默认长度为11,我想查询该模式以获取具有坏bvn的对象,这包括 bvn的为空 bvn的空字符串 bvn的值小于或大于11 我尝试通过以下方式实现这一点: await this.find({ 'bvn': { '$exists': true }, '$expr': { 'ne': [ { '$strLenCP': '$bvn' }, 11 ] } }).exec() 但我得到了一个错误: MongoError:
bvn
的mongoose模式,bvn
值的默认长度为11,我想查询该模式以获取具有坏bvn
的对象,这包括
bvn的
为空bvn的
空字符串bvn的值小于或大于11
await this.find({
'bvn': { '$exists': true },
'$expr': { 'ne': [ { '$strLenCP': '$bvn' }, 11 ] }
}).exec()
但我得到了一个错误:
MongoError:$strLenCP需要字符串参数,找到:null
如何实现变差
bvn的
,我做错了什么?我能用更少的代码实现吗?是一个无效值为空的字符串吗?如果是这样的话,这应该适合您:
db.collection.find({
$or: [
{bvn: {$exists: false}},
{bvn: ""},
{bvn: {$gt: 11}},
{bvn: {$lt: 11}},
]
});