pymongo从find中提取objectID

时间:2014-06-20 14:58:05

标签: python pymongo

你好我有以下mongodb集合:

> db.attributes.find().pretty()
{
    "_id" : ObjectId("53a4445fd901f278f8685b91"),
    "values" : [
        {
            "code" : "AQ",
            "pmsCode" : "638c",
            "name" : {
                "en-UK" : "Aqua"
            },
            "tcxCode" : "16-4529 TCX",
            "hexCode" : "#00aed8",
            "images" : [
                "AQ.jpg"
            ],
            "_id" : ObjectId("53a4445fd901f278f8685b17")
        },
        {
            "code" : "AQ",
            "pmsCode" : "3115c",
            "name" : {
                "en-UK" : "Aqua"
            },
            "tcxCode" : "",
            "hexCode" : "#00c4db",
            "images" : [
                "AQ.jpg"
            ],
            "_id" : ObjectId("53a4445fd901f278f8685b18")
        }],
    "name" : {
        "en-UK" : "Colour"
    }
}
{
    "_id" : ObjectId("53a4445fd901f278f8685bac"),
    "values" : [
        {
            "code" : 0,
            "_id" : ObjectId("53a4445fd901f278f8685b92"),
            "name" : {
                "en-UK" : "0-3 MTHS"
            }
        },      {
            "code" : 0,
            "_id" : ObjectId("53a4445fd901f278f8685b93"),
            "name" : {
                "en-UK" : "ONE SIZE"
            }
        }
,
    "name" : {
        "en-UK" : "Size"
    }
}

基本上是一个包含两个对象ColourSize的集合,其中包含名为values的子对象

使用pymongo查找特定ObjectId值代码Colour的正确方法是什么?

我有这个attribute_id = attributes.find({"values.code": product_color_code})但是如何从中提取实际的ObjectID?

任何建议都非常感激。

1 个答案:

答案 0 :(得分:0)

你可以尝试使用SQL的select _id from table_name GROUP BY _id HAVING some_condition_on_colout方法

在使用python的mongodb中,您可以执行以下操作

ideas.aggregate([
    {"$match": {'colour':'some_Color_of_ur_choice' }},
    {'$group':{'_id': "$_id",'count':{"$sum": 1 } }}
    ])

这将有助于你甚至算不上。根据ObjectIds

出现的颜色