Как вставить вложенные документы в mongodb, используя python (pymongo) - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу вставить вложенные списки / документы в mongodb, используя python / pymongo.Я хочу вставить следующее в mongodb, используя python.кто-нибудь может помочь?

customer =

 {
  '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 import MongoClient

try: conn = MongoClient () print ("Подключено успешно !!!"), за исключением:
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 («Данные вставлены с идентификаторами записи», rec_id1)

Печать вставленных данных

cursor = collection.find()

for record in cursor: 
    print(record) 

, но отображается следующая ошибка:

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

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Я понял.Мне не хватало скобок. Я внес изменения ниже.

{
 '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'
  }
 }]
}
0 голосов
/ 24 сентября 2018

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

...