MongoEngine - 查询 - 如何检查ListField是否为空

Ron*_*Ron 9 mongodb listfield mongoengine

如何检查ListField()Mongo类的属性是否未设置或为空?

谢谢!

Ros*_*oss 14

嗨,你可以使用$ exists$ size:

import unittest
from mongoengine import *

class Test(unittest.TestCase):

    def setUp(self):
        conn = connect(db='mongoenginetest')

    def test_list_exists_or_has_size(self):

        class Post(Document):
            title = StringField(required=True)
            tags = ListField(StringField())

        Post.drop_collection()

        Post(title="Hello Stackoverflow").save()
        Post(title="Hello twitter", tags=[]).save()
        Post(title="Hello world", tags=['post', 'blog']).save()

        self.assertEqual(2, Post.objects(
                                Q(tags__exists=False) |
                                Q(tags__size=0)).count())
Run Code Online (Sandbox Code Playgroud)