我需要一个关于NoSQL/MongoDb和数据/模型结构的建议

Sta*_*ght 14 database couchdb mongodb nosql

最近我正在探索NoSQL数据库.我需要一个关于如何以最佳和有效的方式为给定问题存储数据的建议.我现在以MongoDB为目标.但是它应该与CouchDB相同.

假设我们有这三种型号:

Story:
 id
 title

User:
 id
 name

Vote:
  id
  story_id
  user_id
Run Code Online (Sandbox Code Playgroud)

我希望能够向数据库询问这些问题:

  • 谁投票赞成这个故事?
  • 此用户投票给了什么?

我在使用关系数据库时正在进行简单连接.问题是,我应该如何存储这些对象的数据,以便最有效.

例如,如果我将投票对象存储为故事的子集合,则不容易获得信息 - "用户投票的内容".

mdi*_*olf 7

我建议将投票存储为_id每个用户的故事列表.这样,只需查看列表,您就可以找到用户投票的故事.要获得投票选出故事的用户,您可以执行以下操作:

db.users.find({stories: story_id})

这里story_id_id有问题的故事.如果在stories字段上创建索引,则这两个查询都会很快.