PyMongo。如何正确过滤以下数据?

时间:2017-09-28 08:26:34

标签: python mongodb pymongo

我的收藏品如下:

{
    ....
    "Main":{
        ...
        "Tags":[
            "tag1",
            "tag2",
            ...
        ]
    }
}

我获得了一个标签列表,目标是从集合中查找所有对象,使列表中的所有标签都在对象的标签列表中。这样做的正确和最简单的方法是什么?

2 个答案:

答案 0 :(得分:0)

我找到了解决方案。

filter[0]['$match']['Main.Tags']['$all'] = searced_tags_list

答案 1 :(得分:0)

使用python和pymongo驱动程序的另一种选择: 假设你有数据库" DB"和收集" COLECTION"。获取包含标签的所有文件" tag1"和" tag2",执行以下操作......

from pymongo import MongoClient

def main():
    mongoClient = MongoClient('mongodb://IP:PORT')
    db = mongoClient.DB
    collection = db.COLECTION

    objects = collection.find({"Main.Tags": {$all: ["tag1", "tag2"]}})

    for doc in objects:
        print doc[_id]      

if __name__ == "__main__":
        main()

以上示例将显示搜索文档的_id。

问候!