如果我的集合中包含类似于下面的列表字段。
class Post(Document):
tags = ListField(StringField())
假设我有一个贴有标签的帖子:有趣,有趣。
如果我想搜索标签符合任何搜索字词的帖子,我该怎么做?
如果我将搜索词放在“有趣”和“奇妙”中,则上面的帖子应该在结果集中。
我试图通读documentation,但似乎没有这样的运营商。 “all”和“in”相似但不能执行我想要的。
谢谢!
干杯, 克里斯
答案 0 :(得分:5)
这实际上只是一个简单的查询,例如:
class Post(Document):
tags = ListField(StringField())
>>> Post.drop_collection()
>>> Post(tags=["hello", "world"]).save()
>>> Post(tags=["cat", "dog"]).save()
>>> Post.objects(tags__in=['hello', 'cat']).count()
... 2
这相当于找到hello
中tags
的所有文档。 In会搜索“' in'中的任何项目。数组匹配和all
是所有项匹配的位置 - 或者换句话说是完全匹配。