Mongodb 如何查询内部文档?

Mongodb 如何查询内部文档?,mongodb,Mongodb,假设我有这样一个文档: post = {title: "a", comments: [{hour: "08:00", "text": "abc"}, {hour: "09:00", "text": "def"}]} 现在我可能有大约1000篇帖子,每个帖子有100条评论,这意味着我们有大约100000条评论 但我如何才能找到发表评论最常见的时间 甚至可以保持100条评论,比如1000条评论 获取所有用户的评论?我可能会在用户文档上创建一个带有注释=[…]的数组 我看到他们没有密钥属性,但我想

假设我有这样一个文档:

post = {title: "a", comments: [{hour: "08:00", "text": "abc"}, {hour: "09:00", "text": "def"}]}
现在我可能有大约1000篇帖子,每个帖子有100条评论,这意味着我们有大约100000条评论

  • 但我如何才能找到发表评论最常见的时间
  • 甚至可以保持100条评论,比如1000条评论
  • 获取所有用户的评论?我可能会在用户文档上创建一个带有注释=[…]的数组
  • 我看到他们没有密钥属性,但我想使用一个,不实现我自己的密钥生成系统是否可行
  • 有可能有一个包含评论的集合,并将它们也保存在那里
另一个例子是:

 article = {code: "X900123", quantity: 24, movementsHistory: [{date:20120101, quantity: 3}, {date:20120102, quantity: 5}]}
如果我希望20101年的所有文章的所有变动都大于当前股票的25%,这怎么可能实现? -在mysql中,我会有一个文章和移动的表,然后每个移动都链接到文章。因此,我可以加入文章和动作,并得到结果。(关于所有文章,而不是一篇接一篇)


谢谢你的帮助(:

好的,这里有很多问题

  • 使用
  • 100条最常见的注释?是的,可以使用MapReduce
  • 您可以将注释复制到用户文档中,是的。或者您可以使用MapReduce
  • 无需创建自己的id生成器。所有官方驱动程序都支持创建新的ObjectID(在客户端,无需联系服务器)
  • 这将是这里最合理的解决方案,因为您希望将注释视为一级实体,而不是嵌入的实体。您不应该嵌入一级实体,这会使事情变得更困难。如果注释有自己的集合,您可以更自由地执行可能的查询。继续
  • 你的第二个例子我不太明白