2011-12-02 70 views
0

我的数据库结构如下:MongoDB的查询和结果分析

{ title : "My First Post", author: "Jane", 
    comments : [{ by: "Abe", text: "First" }, 
       { by : "Ada", text : "Good post" } ] 
} 

我无法写出如下:

  • 获取上的Ada没有发表评论的所有帖子
  • 获取安倍发表评论为“第一”的所有帖子
  • 找到帖子并存储在post变量中后,显示评论的文字由Abe

谢谢。

回答

5

获取所有岗位上的Ada 没有评论

还有就是在MongoDB中一个$万年(代表没有),操作者可以编写这样的查询:

db.my.collection.find({'comments.by': {$nin: ['Ada']}}); 

获取Abe评论“First”的所有帖子

只要评论存储在数组中,通过索引访问特定项目是绝对合法的。为了实现这个目标,你可以写下面的查询:

db.my.collection.find({'comments.0.by': 'Abe'}); 

一旦帖子已被发现并存储在变量后,安倍

显示注释的文本

这取决于你客户端应用程序如何呈现检索的数据

+0

谢谢。 'post'变量是一个JSON对象,就像我提出的问题。我如何检索Abe的评论文本? – alste

+0

np。我猜:post.comments [0] – ioseb

+0

如果安倍不是第一个评论者? – alste