如何查询内部文件?

时间:2012-04-01 19:13:45

标签: mongodb

想象一下,我有一个这样的文件:

post = {title: "a", comments: [{hour: "08:00", "text": "abc"}, {hour: "09:00", "text": "def"}]}

现在我可能有大约1000个帖子,每个帖子有100条评论,这意味着我们有大约100000条评论,

  • 但我怎么会发现哪个是评论最常见的小时?
  • 例如,甚至可以保留100或1000条评论?
  • 获取所有用户评论?我可以使用comments = [...]?
  • 在用户文档上创建一个数组
  • 我看到他们没有_key属性,但是我想使用一个,可能没有实现我自己的密钥生成系统吗?
  • 有可能有一个带有评论的集合并将它们保留在

另一个例子是:

 article = {code: "X900123", quantity: 24, movementsHistory: [{date:20120101, quantity: 3}, {date:20120102, quantity: 5}]}

如果我希望20120101上所有文章的所有动作都超过当前股票的25%,我该如何做到这一点?    - 在mysql中我会有一个文章和动作的表格,然后每个动作都链接到文章。因此,我可以在文章和动作上加入并获得结果。 (关于所有文章,不是一个一个)

感谢您的帮助(:

1 个答案:

答案 0 :(得分:3)

好的,这里有很多问题。

  1. 使用MapReduce
  2. 最常见的100条评论?是的,可以使用MapReduce。
  3. 您可以将评论复制到用户文档,是的。或者你可以使用MapReduce。
  4. 无需制作自己的ID生成器。所有官方驱动程序都支持创建新的ObjectIds(在客户端上,无需联系服务器)。
  5. 这是最合理的解决方案,因为您希望将注释视为第一类实体,而不是嵌入实体。你不应该嵌入一流的实体,它会让事情变得更难。如果注释具有自己的集合,则可以更自由地运行可能的查询。这是more information上的"embed vs. link"
  6. 你的第二个例子我真的不明白。