【问题标题】:Pymongo not parsing like JSONPymongo 不像 JSON 那样解析
【发布时间】:2015-12-08 05:17:28
【问题描述】:

我有一个 JSON 文档,如下所示:

x = {'ALPHA':{'A':{ 'T1':{ 'L':{'a':1,
                                    'b':2,
                                    'c':3,},

                                'S':{'a':1,
                                     'b':2,
                                     'c':3,}},

                        'T2':{'L':{'a':1,
                                   'b':2,
                                   'c':3,},

                               'S':{'a':1,
                                    'b':2,
                                    'c':3,}},

                        'T3':{'L':{'a':1,
                                    'b':2,
                                    'c':3,},

                               'S':{'a':1,
                                    'b':2,
                                    'c':3,}}
                        }
              }
     }

我可以正常解析得到'A',标准x['ALPHA']['A']。我认为 mongoDB 等价物是mongo.find_one({'ALPHA':'A'}),但我对此感到困惑。也许我创建的文档不正确?

情况如下:

import pymongo

mong  =  pymongo.Connection()['ALPH']['AZ']

letter_dict = ('A','B','C','D')
for letter in letter_dict:
    x = {'ALPHA':{letter :{ 'T1':{ 'L':{'a':1,
                                        'b':2,
                                        'c':3,},

                                    'S':{'a':1,
                                         'b':2,
                                         'c':3,}},

                            'T2':{'L':{'a':1,
                                       'b':2,
                                       'c':3,},

                                   'S':{'a':1,
                                        'b':2,
                                        'c':3,}},

                            'T3':{'L':{'a':1,
                                        'b':2,
                                        'c':3,},

                                   'S':{'a':1,
                                        'b':2,
                                        'c':3,}}
                            }
                  }
         }

    mong.insert(x)

但是当我尝试搜索'A' 时,它要么是在寻找None,要么是返回一个游标,或者是一个对象ID:

mong.find_one({'ALPHA':'A'})
>>>None
mong.find_one({},{'A':1})
>>>{u'_id': ObjectId('55f2eeb7c8b582120834de8f')}

有人可以帮忙吗?

【问题讨论】:

    标签: python json mongodb python-2.7 pymongo


    【解决方案1】:

    尝试在查询中使用$exists 函数。

    mongo.find_one({'ALPHA.A':{ '$exists': True }})
    

    这将查看“A”键是否存在于“ALPHA”键中。 您也许可以找到更多帮助here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 1970-01-01
      相关资源
      最近更新 更多