繁体   English   中英

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

[英]How to insert nested documents in to mongodb using python (pymongo)

我想使用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()打印(“连接成功!!”),除了:
打印(“无法连接到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'

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

conn = pymongo.MongoClient('localhost')  # replace localhost with the real address
db = conn['db_name']
db['collection_name'].insert_one({'x': 1})  # replace {'x': 1} with `customer`

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

我知道了。 我缺少牙套。我在下面进行了更改。

{
 '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'
  }
 }]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM