MongoDB查询和结果解析

时间:2011-12-02 06:37:03

标签: mongodb node.js

我的数据库结构如下:

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

我无法写出以下内容:

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

感谢。

1 个答案:

答案 0 :(得分:5)

  

获取Ada 没有评论

的所有帖子

MongoDB中有一个$ nin(代表不在)运算符,您可以像这样编写查询:

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

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

就评论存储在数组中而言,通过索引访问特定项目绝对合法。要实现此目标,您可以编写以下查询:

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

找到帖子并存储在帖子变量中后,显示Abe评论的文本

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