1

如果我有一个包含类似于下面的列表字段的集合。

class Post(Document):
   tags = ListField(StringField())

假设我有一个带有标签的帖子:有趣,有趣。

如果我想搜索带有满足任何搜索条件的标签的帖子,我应该怎么做?

假设我输入搜索词“有趣”和“很棒”,结果集中应该有上面的帖子。

我试图通读文档,但似乎没有这样的运算符。“all”和“in”是相似的,但不能执行我想要的。

谢谢!

干杯,克里斯

4

1 回答 1

6

这实际上只是一个简单的查询,例如:

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所有项目都匹配的位置 - 或者换句话说是完全匹配。

于 2012-10-11T08:05:00.253 回答