Pymongo不像JSON那样解析

2024-09-25 08:29:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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,}}
                        }
              }
     }

在这里,我可以用标准的x['ALPHA']['A']解析通常的'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')}

有人能帮忙吗?你知道吗


Tags: 文档alphanoneidjson标准findone
1条回答
网友
1楼 · 发布于 2024-09-25 08:29:28

尝试在查询中使用$exists函数。你知道吗

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

这将查看“ALPHA”键中是否存在“A”键。 你也许能找到更多的帮助here

相关问题 更多 >