pymongo中如果读取DBRef关联外键文档字段?


在做一个小站,第一次使用pymongo+bottle+jinja2,现有新闻两个文档集合,类别:news.category和文章:news.article

插入文章时代码片段如下:


 {
            "category": DBRef("news.category", ObjectId('519724b5be238712bcd67793')),
            "title": "文章标题1"
}

问题是,我在读取文章集合时,如果在每个文档记录里得到该文章的类别名称? news.category.category为类别文档的字段

python mongodb

3011301 9 years, 11 months ago

如果我来设计,就不用DBRef,直接把ObjectId写上去。因为DBRef也是driver帮你再query一次数据库,而且跟直接写ObjectId一样,没有关系数据库中必需的外键一致性。 性能上也跟 db.category.find({ "_id" : article["category"]}) 一样样的。官方也不推荐用它了。

如果你一定要用DBRef,可能这个 官方文档 能帮上你。

一只小小鸟 answered 9 years, 11 months ago

Your Answer