Home

Tags

MongoDB вложенные объекты

2010-05-19 python mongodb

Пример работы с вложенными объектами

# coding: utf8

from pymongo.connection import Connection
from pymongo.son_manipulator import AutoReference, NamespaceInjector

# Подключаемся к монго
try:
    connection = Connection("localhost")
except ConnectionFailure:
    print "couldn't connect to Mongo"
    sys.exit(1)

# Создаем пустую базу, (удаляем - создаем)
connection.drop_database("pymongo_examples")
db = connection["pymongo_examples"]

# Добавляем манипуляторы
db.add_son_manipulator(NamespaceInjector())
db.add_son_manipulator(AutoReference(db))

# Сохранияем сообщение
message = {"content": "none"}
db.messages.save(message)

# Сохранием документ с вложенным сообщением
user = {"name": "user", "message": message}
db.users.save(user)

# Изменяем сообщение
m = db.messages.find_one()
m["content"] = "mail"
db.messages.save(m)

# Получаем пользователя и его сообщение
u = db.users.find_one()
print "%s %s" % (u["name"], u["message"]["content"])