MongoDB mongoDB collection 内的关系

xiaoronglv · 2012年10月23日 · 最后由 Rei 回复于 2012年10月23日 · 2473 次阅读

文档结构如图所示,有个 article collection,某篇 article 会有多篇参考文章(文章 1、文章 2、文章 3....)。

使用关系型数据库的话,我会建立两个表,很容易就实现了。但是 mongoDB,实现容易吗?效率如何?

最常用的两个查询:

  • 文章 3 被哪些文章引用?
  • 文章 1、文章 2、文章 3、文章 4、文章 n,按被引用次数排序?

参考网址

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3062417/

想使用 MongoDB 的原因

这些文章在后台储存的格式为 xml,很方便可以转化为 BSON 数据

疑问

使用关系型数据库的话,我会建立两个表,很容易就实现了。使用 mongoDB,实现容易吗?效率如何?

mySQL 数据库设计

article

id:integer
title:string
content:text


reference

id:integer
rid:integer

有点像 google 的 page rank。 😄

{
  _id: ...,
  title: string,
  content: text,
  reference_ids: [..., ...],
  referenced_count
}

#2 楼 @Rei

referenced_count:被引用次数? 如果要查找 article 3 被哪些文章引用,方便吗?我对 mongoDB 的查询还不太熟悉。

#3 楼 @xiaoronglv counter_cache 来的,引用的时候更新。

article 3 被哪些文章引用

# mongoid Article.where(:reference_ids => 3)

Page rank 那样文章本身权重再去影响引用文章得权重做不到。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号