今天早上想把毕设的数据库设计一下,但是现在使用的是NoSQL的MongoDB,没法像以前一样用MySQL解决问题了,甚至是一个1-N的关系我都头疼了许久。
查看网文的时候发现,一个示例中mongo的引用链接(好友链接操作)使用如下:
peter = {"name":"peter"}
marry={"name":"marry"}
....
db.person.insert([peter,marry,....])
sun = {"name":"sun","friends":[new DBRef("person",peter["_id"]),....]}
这里的问题是,如果peter等对象是新建的插入数据库中的记录,这个操作时可以实现的,friends中会有peter对应的_id,但是总不可能为每个要添加好友的人执行一次
db.person.save(peter)
但是数据库中存在的记录调用 peter = db.person.find({"name":"peter"})
回车后发现什么都没有,这样再插入数据库就发现_id的值是null
查了半天才想起来,find操作返回的是一个集合,直接将集合赋值给变量肯定得不到其中对象的id号了,
解决方法很简单,peter = db.person.find("peter").next()
这样peter就赋值成功了。