0
嗨,大家好我有一個JSON這樣如何返回null元素的數組,如果數組不MongoDB中使用存在pymongo
{
"_id":"15b9367568b61a0a2891feef",
"date":1492826657037,
"sourceId":123",
"sessionCreationDate":1492826657037,
"sessionId":"15b9367568dcd6dcd36f7615",
"actions":[
{
"flag":"STARTED_SCROLL"
},
{
"flag":"ARTICLE_MIDDLE"
}
],
"dateClose":1492826915066
}
怎麼過一些ID是「操作」數組可能不存在藏漢所以這樣的事情是可能的
{
"_id":"15b9367568b61a0a2891feef",
"date":1492826657037,
"sourceId":123,
"sessionCreationDate":1492826657037,
"sessionId":"15b9367568dcd6dcd36f7615"
}
我當前的查詢使用pymongo是
db['visits'].aggregate\
(
[
{
"$match":
{
"sourceId":
{
"$exists": True,
"$ne": None
},
"date":
{
"$gt":time.time() * 1000 - (1*60*60*1000)
}
}
},
{
'$project':
{
'sourceId':1,
'actions.flag':
{
'$ifNull': ['$actions.flag', None]
}
}
}
]
)
導致行動作爲字典ionary actions': {u'flag': None}
我怎麼將它轉換爲像[actions': {u'flag': [None]}]
字典的名單?因爲我想訪問標誌變量插入到我的分貝,但在for循環調用['actions'][0]['flag']
不起作用,因爲行動不是從mongo查詢返回的那些行動項目的列表,它打破
@Jesse我仍然得到行動爲'u'actions ':{u'flag':無,無]}'我要的是像'u'actions'列表:[{u'flag':無,無]}]'那些 「方括號」 –
由於它的工作!我認爲我看到的是錯誤的,我必須用$ project中的動作替換actions.flag,然後插入你已經回答的東西的其餘部分,它就起作用了!謝謝 –