Mongodb mongoengine如何使用列表中的包含进行查询?

Mongodb mongoengine如何使用列表中的包含进行查询?,mongodb,pymongo,mongoengine,Mongodb,Pymongo,Mongoengine,如果我有一个与下面类似的列表字段的集合 class Post(Document): tags = ListField(StringField()) 假设我有一篇贴子,上面有标签:有趣,有趣 如果我想搜索带有标签的帖子,我应该怎么做 比如说,如果我把有趣和奇妙的搜索词,上面的帖子应该在结果集中 我试图通读,但似乎没有这样的操作员。all和in都是相似的,但不能实现我想要的 谢谢 干杯, Chris这实际上只是一个简单的查询,例如: class Post(Document): tag

如果我有一个与下面类似的列表字段的集合

class Post(Document):
   tags = ListField(StringField())
假设我有一篇贴子,上面有标签:有趣,有趣

如果我想搜索带有标签的帖子,我应该怎么做

比如说,如果我把有趣和奇妙的搜索词,上面的帖子应该在结果集中

我试图通读,但似乎没有这样的操作员。all和in都是相似的,但不能实现我想要的

谢谢

干杯,
Chris

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

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-in标记的文档。“In”将进行搜索,其中“In”数组中的任何项都匹配,“all”是所有项匹配的地方,或者说是完全匹配的地方。

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

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-in标记的文档。In将进行搜索,其中“In”数组中的任何项匹配,而all是所有项匹配的位置,或者换句话说,是完全匹配的位置。

是的。我知道我可以这样做。但是如果我这样做,那么我必须遍历所有的搜索词,并对每个搜索词进行一次查询。这是不可取的。我也在使用django tastypie mongoengine。我需要向它传递一个查询集。除非我这样做。objectsQtags='hello'|Qtags='world'。但是我在想,如果有更简单的事情。看起来不错!就在之前,我遇到了一些其他的问题,我认为in不起作用。我知道我可以这样做。但是如果我这样做,那么我必须遍历所有的搜索词,并对每个搜索词进行一次查询。这是不可取的。我也在使用django tastypie mongoengine。我需要向它传递一个查询集。除非我这样做。objectsQtags='hello'|Qtags='world'。但是我在想,如果有更简单的事情。看起来不错!就在之前,我遇到了一些其他的问题,我认为这是行不通的。