Как вставить вложенные документы в mongodb, используя python (pymongo)

1

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

клиент =

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

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'
Теги:
pymongo-3.x

2 ответа

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

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

  • 0
    я получаю ту же ошибку, что я упоминал выше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню