使用MongoDB的ObjectId获取资源时返回404?

时间:2017-07-27 11:29:44

标签: python mongodb eve

我使用python 3.4.2,eve 0.7,flask 0.12和MongoDB作为我的数据库。

这是我的前夕架构代码:

'item_title': 'abc',                                                                                                                                         
'id_field': 'ObjectId',                                                                                                                                        
'item_lookup_field': 'ObjectId',                                                                                                                               
'item_url': r'regex("[\w]+")',                                                                                                                                 
'query_objectid_as_string': True 

当我尝试使用Mongo对象id获取资源时,它返回404。

'item_title': 'abc',                                                                                                                                         
'id_field': 'custom_field',                                                                                                                                        
'item_lookup_field': 'custom_field',                                                                                                                               
'item_url': r'regex("[\w]+")',                                                                                                                                 
'query_objectid_as_string': True 

当我使用任何其他自定义字段时,它工作正常。 我也试过下面的代码。也返回404。

'item_title': 'abc',                                                                                                                                         
#'id_field': 'ObjectId',                                                                                                                                        
#'item_lookup_field': 'ObjectId',                                                                                                                               
'item_url': r'regex("[\w]+")',                                                                                                                                 
'query_objectid_as_string': True 

1 个答案:

答案 0 :(得分:1)

'id_field': '_id',  # Name of field                                                                                                                                      
'item_lookup_field': '_id', # Name of object field ex. mongo object id here

'query_objectid_as_string': False

由于`query_objectid_as_string':True,它将数据库查询为字符串而不是对象。所以它不会找到。所以它返回404