【问题标题】:How to query only some fields from a mongodb sub-document?如何仅从 mongodb 子文档中查询某些字段?
【发布时间】:2014-01-06 17:55:23
【问题描述】:

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

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

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

现在,我正在尝试获取某个日期之后发布的所有 cmets(仅存储为文章中的子文档)。此外,我只想要 text 字段,而不是 author 字段。这相当于:Comment.find({created: {$gte: date}}, "text"),但由于 cmets 没有存储在它们自己的数据存储中,所以这不起作用。

【问题讨论】:

    标签: mongodb mongoose subdocument


    【解决方案1】:
    db.articles.find({'comments.created': {$gte: date}}, {_id: 0, 'comment.text': 1})
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-01
      • 2019-07-11
      • 2020-06-14
      • 1970-01-01
      • 2014-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多