如何解决如何通过属性大小不超过特定数字或在Mongoose中为空或null的值获取对象
我有一个猫鼬模式,其属性为bvn
,默认情况下bvn
的值的长度为11,我想查询该模式以获取具有不良bvn's
的对象,其中包括
-
bvn's
为空。 -
bvn's
空字符串 -
bvn's
的值小于或大于11。
我尝试通过使用以下行来实现这一目标:
await this.find({
'bvn': { '$exists': true },'$expr': { 'ne': [ { '$strLenCP': '$bvn' },11 ] }
}).exec()
但出现错误:
MongoError:$ strLenCP需要一个字符串参数,找到:null
如何实现变坏bvn's
,我在做什么错,我可以用更少的代码来实现吗?
解决方法
不为空的字符串是否为有效值?如果是这样,这应该对您有用:
https://mongoplayground.net/p/dJ2FMc8JWB4
db.collection.find({
$or: [
{bvn: {$exists: false}},{bvn: ""},{bvn: {$gt: 11}},{bvn: {$lt: 11}},]
});