如何只查询mongodb子文档中的某些字段?

时间:2013-12-18 13:56:25

标签: mongodb mongoose subdocument

对于我的测试应用程序,我使用此架构存储文章和评论:

var commentSchema = new mongoose.Schema({
  author: String,
  text: String,
  created: Date
});

var articleSchema = new mongoose.Schema({
  title: String,
  text: String,
  comments: [commentSchema]
});

现在,我正在尝试获取在特定日期之后发布的所有评论(仅存储为文章中的子文档)。另外,我只想要text字段,而不是author字段。这相当于:Comment.find({created: {$gte: date}}, "text")但由于注释未存储在自己的数据存储中,因此无效。

1 个答案:

答案 0 :(得分:0)

db.articles.find({'comments.created': {$gte: date}}, {_id: 0, 'comment.text': 1})

我没有使用过mongoose,所以这个解决方案假设子文档是完整的文档,而不仅仅是_ids的数组