Python Mongoengine/MongoDB按字符串长度过滤查询



如何按字符串长度筛选文档中的字段?我使用MongoEngine作为ORM。

我知道下面的内容不正确,但我正在尝试这样做:

from mongoengine import Q
people_with_no_phone = People.objects(Q(phoneNumber=None) | Q(phoneNumber__len__lt=9)).count() 

我知道Mongo有一个strLenCP,但不确定如何在这种情况下使用它。

您可以执行类似的操作

db.collection.find({
"$expr": {
"$eq": [
{
"$strLenCP": "$<YOUR_FIELD_NAME>"
},
12
]
}
})

在这里,我使用了$eq运算符来检查集合中存在的许多文档中是否有任何文档的字段长度等于12。您可以使用$gt、$lt、$gte、$lte,但您希望最终结果是。

最新更新