Mongoose,查询嵌入式数组

时间:2016-04-11 22:47:31

标签: node.js mongodb mongoose

groupsSchema = mongoose.Schema(
  {
     name: String,
     books: [{
       _id: mongoose.Schema.ObjectId,
       title: String,
       filename: String
     }]
  });

我需要一个查询,如下所示:

db.Groups.findOne({name: group_name, 'books.title': book_title},
{_id: 0, 'books._id.$': 1}, function(err, book) {}

获取一个书籍ID,其中title = book_title 现在它给了我一本带有所有属性的错误的书。没有$,它给了我所有的书籍。

1 个答案:

答案 0 :(得分:-1)

我解决了这个问题。造成问题的原因是:

  

"查询文档中只能显示一个数组字段。"

我还在检查成员数组(不在示例中)。这样:

db.Groups.findOne({name: group_name, 'books.title': book_title},
{_id: 0, 'books.$': 1}

工作正常。