循环pymongo对象时出错

时间:2016-11-11 10:13:46

标签: mongodb pymongo

我有一个喜欢的系列。

{
    "id" : 101,
    "name" : "ragav",
    "address" : "143 karnadaka",
    "products" : [
                    {
                        "id" : 2,
                        "name" : "AA",
                        "amount" : "150"
                    },
                    {
                        "id" : 4,
                        "name" : "BB",
                        "amount" : "15"
                    },
                    {
                        "id" : 6,
                        "name" : "CC",
                        "amount" : "210"
                    },

                ]
}

我需要根据产品在此系列中找到记录。我运行以下查询。

查询

 db.Response.find(
                  {"products.id":2},
                 {"products.id.$":1,"id":1,"name":1,"address":1}
              )

在我的mongo终端,我得到了输出。但我在使用pymongo2.8时通过python访问,当我试图迭代pymongo对象时会出现这样的错误。

  

数据库错误:执行程序错误:InternalError:位置不明确   投影

出现此错误的原因是什么?怎么解决?

1 个答案:

答案 0 :(得分:0)

如果位置运算符出现在投影或更新中,并且对文档有多个数组匹配,MongoDB将发出错误。

所以基本上问题在于product.id。$

中的$

这是预期的行为。有关详细信息和示例,请参阅https://jira.mongodb.org/browse/SERVER-14662