如何使用python(pymongo)将嵌套文档插入到mongodb中

时间:2018-09-24 10:12:41

标签: python mongodb pymongo-3.x

我想使用python / pymongo将嵌套的列表/文档插入到mongodb中。我想使用python将以下内容插入到mongodb中。有人可以帮忙吗?

客户=

 {
  'first_name' : 'Arnold',
  'last_name' :  'Pettibone',

  'addresses': [
    'home' : {
      'street' : '1234 fake street',
      'city' :   'Anytown',
      'state' :  'OH',
      'zip' :    '12345'
    },
    'work' : {
      'street' : '742 Evergreen Terrace',
      'city' :   'Springfield',
      'state' :  'OH',
      'zip':     '12345'
    }
  ]
}

我尝试过自己。代码如下。

从pymongo导入MongoClient

尝试:     conn = MongoClient()     打印(“连接成功!!”) 除了:
    print(“无法连接到MongoDB”)

数据库

db = conn.database 

创建或切换到集合名称:my_collection

collection = db.my_collection 

customer = {
  'first_name' : 'Arnold',
  'last_name' :  'Petti',

  'addresses': [
    'home' : {
      'street' : '1234 fake street',
      'city' :   'Anytown',
      'state' :  'OH',
      'zip' :    '12345'
    },
    'work' : {
      'street' : '742 Evergreen Terrace',
      'city' :   'Springfield',
      'state' :  'OH',
      'zip':     '12345'
    }
  ]
}

插入数据

rec_id1 = collection.insert(customer) 

print(“插入记录ID的数据”,rec_id1)

打印插入的数据

cursor = collection.find()

for record in cursor: 
    print(record) 

但显示以下错误:

File "emo.py", line 20
    'home' : {
           ^
syntax error : invalid syntax'

2 个答案:

答案 0 :(得分:1)

MongoDB是一个非关系数据库,您可以使用JSON格式的任何架构存储文档。

<html>
    <style>
        #myProgress {
            width: 100%;
            background-color: #ddd;
        }
        #myBar {
            width: 0%;
            height: 30px;
            background-color: #4CAF50;
            text-align: center;
            line-height: 30px;
            color: white;
        }
    </style>
    <body>
        <div id="myProgress">
            <div id="myBar">0%</div>
        </div>
        <br>
        <input type="text" class="form-control" id="number" min="0" max="100" required>
        <button type="button" onclick="change_progress()">Change Progress</button>
    </body>
</html>
<script>
    function change_progress() {
        var elem = document.getElementById("myBar");
        val = parseInt(document.getElementById("number").value);
        var width = 0;
        var id = setInterval(frame, val);
        function frame() {
            if (width >= val) {
                clearInterval(id);
            } else {
                width++; 
                elem.style.width = width + '%'; 
                elem.innerHTML = width * 1  + '%';
            }
        }  
    }
</script>

http://api.mongodb.com/python/current/api/pymongo/collection.html#pymongo.collection.Collection.insert_one

答案 1 :(得分:1)

我明白了。 我缺少括号。我在下面进行了更改。

{
 'first_name' : 'Arnold',
 'last_name' :  'Pettibone',

 'addresses': [{
 'home' : {
    'street' : '1234 fake street',
    'city' :   'Anytown',
    'state' :  'OH',
    'zip' :    '12345'
  },
 'work' : {
    'street' : '742 Evergreen Terrace',
    'city' :   'Springfield',
    'state' :  'OH',
    'zip':     '12345'
  }
 }]
}