簡體   English   中英

MongoDB導入字段設置的不同集合

[英]MongoDB import to different collections set by a field

我有一個名為data.json的文件,並使用mongoexport提取,其結構如下:

{"id":"63","name":"rcontent","table":"modules"}
{"id":"81","name":"choicegroup","table":"modules"}
{"id":"681","course":"1242","name":"Requeriments del curs","timemodified":"1388667164","table":"page"}
{"id":"682","course":"1242","name":"Guia d'estudi","timemodified":"1374183513","table":"page"}

我需要的是使用諸如mongoimportpymongo類的命令將此文件導入到本地mongodb ,但將每行存儲在以表值命名的集合中。

例如,收集模塊將包含文檔

{"id":"63","name":"rcontent"} and {"id":"81","name":"choicegroup"}

我已經嘗試過mongoimport但是我還沒有看到任何允許的選擇。 有誰知道是否有命令或方法來做到這一點?

謝謝

使用python的基本步驟是:

  1. 解析data.json文件以創建python對象

  2. 從每個文檔對象中提取table鍵值對

  3. 將其余文檔插入pymongo集合

值得慶幸的是,pymongo使這一過程變得非常簡單,如下所示:

import json

from pymongo import MongoClient

client = MongoClient()  # this will use default port and host
db = client['test-db']  # select the db to use
with open("data.json", "r") as json_f:
    for str_doc in json_f.readlines():
        doc = json.loads(str_doc)
        table = doc.pop("table")  # remove the 'table' key 
        db[table].insert(doc)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM