2016-10-13 8 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

このために追加のルートは必要ありません。 Eveはバルクインサートをサポートしています。このjsonをPOSTエンドポイントにPOSTするだけですが、キーがスキーマキーと一致することを確認してください。

関連する問題