import pymongo | |
from pymongo import Connection | |
from pymongo.dbref import DBRef | |
from pymongo.database import Database | |
# connect | |
connection = Connection() | |
db = Database(connection, "things") | |
# clean up | |
db.owners.remove() | |
db.tasks.remove() | |
# owners and tasks | |
db.owners.insert({"name":"Jim"}) | |
db.tasks.insert([ | |
{"name": "read"}, | |
{"name": "sleep"} | |
]) | |
# update jim with tasks: reading and sleeping | |
reading_task = db.tasks.find_one({"name": "read"}) | |
sleeping_task = db.tasks.find_one({"name": "sleep"}) | |
jim_update = db.owners.find_one({"name": "Jim"}) | |
jim_update["tasks"] = [ | |
DBRef(collection = "tasks", id = reading_task["_id"]), | |
DBRef(collection = "tasks", id = sleeping_task["_id"]) | |
] | |
db.owners.save(jim_update) | |
# get jim fresh again and display his tasks | |
fresh_jim = db.owners.find_one({"name":"Jim"}) | |
print "Jim's tasks are:" | |
for task in fresh_jim["tasks"]: | |
print db.dereference(task)["name"] |
![]() |
1
EPr2hh6LADQWqRVH 2013-11-07 18:32:49 +08:00
跨collection好像就不行了吧,你这样完全是像用关系型数据库一样在用mongo嘛。。Mongo又没有Join,你这不是搬起石头砸自己的脚。。。。
用户名改的话就统一改好了,你现在这样是在每次查询的时候费事,而统一改的话只是在修改的时候费事,到底是查询的情况普遍还是修改的情况普遍? |