2016-10-13 5 views
0

У меня есть список тегов bluetooth, которые отправляют некоторую информацию. Я хочу создать коллекцию для каждого MAC (addr) тегов. Как мне это сделать? Вот настройки, которые я использую, и пример JSON, который я получаю.Различные коллекции в EVE

DOMAIN = { 
'ble': [ 
    'additional_lookup': { 
     'url': 'regex("[\w]+")', 
     'field': 'name', 
     }, 
    'schema': { 
     'address': { 
      'type': 'string' 
     }, 
     'rssi': { 
      'type': 'string' 
     }, 
     'name': { 
      'type': 'string', 
      'unique': True 
     }, 
     'tx_power': { 
      'type': 'string' 
     }, 
     'r_time': { 
      'type': 'string' 
     } 
    } 
] 
} 

Это пример JSON, что я буду получать:

[{ 
    "addr": "ff:ff:00:00:2a:15", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "ITAG", 
    "rssi": -61, 
    "txpw": 0 
}, { 
    "addr": "66:55:44:33:22:10", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "NULL", 
    "rssi": -61, 
    "txpw": -100 
}, 

{ 
    "addr": "47:c9:df:25:34:b1", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "NULL", 
    "rssi": -94, 
    "txpw": -100 
} 
] 

Я попытался маршрут с Колба, но это не создание новых коллекций. Здесь Код:

from eve import Eve 
import Flask 

app = Eve() 

@app.route('/ble', methods=['POST']) 
def create_ble(): 
    data = request.get_json() 
    json_data = json.loads(data) 
    quant = len(json_data['beacon_list']) 
    for i in range(0, quant-1): 
     beacon = json_data[i] 
     addr = json_data[i]['addr'] 
     beacon = json.dumps(beacon) 
     mongo.db[addr].insert(beacon) 

    return 


if __name__ == '__main__': 
    app.run() 
+0

Итак, что вы пробовали? – UnholySheep

ответ

0

Для этого не нужен дополнительный маршрут. Ева поддерживает объемные вставки. Просто отправьте это json на конечную точку, но убедитесь, что ключи соответствуют вашим ключам схемы.

Смежные вопросы