2012-08-08 36 views

答えて

11

こんにちはあなたは$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()) 
+0

いいですね!しかし、それは "存在"ではなく、最終的なクエリに "存在"していませんか?私は6文字以下の変更を許可されていません... – Ron

-1

わから全くわからないこの:

from mongoengine import * 

connect('tumblelog') 


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


post1 = Post(title='Fun with MongoEngine', tags=['mongodb', 'mongoengine']) 
post1.save() 

for post in Post.objects: 
    print post.title 
    if not post.tags: 
     print '-post has no tags' 
    else: 
     print post.tags 

この意志出力:

Fun with MongoEngine 
[u'mongodb', u'mongoengine'] 
Fun with MongoEngine no tags 
-post has no tags 
関連する問題