用Mongoose查询嵌套的embedded式文档

我试图查询内嵌的embedded式文档。 我试图“填充”结果,但是失败了。

如何找回查找电话中的所有书籍详情? 我想要一个用户书架上的所有书籍对象,我可以从中获取数据?

### Trying to query nested embedded documents using Mongoose. Database Outline for example An Owner has multiple bookshelves which each have an array of books. A book is not unique, and the same book could be on many different shelves. ### mongoose = require("mongoose") Schema = mongoose.Schema mongoose.connect "localhost", "d1" bookSchema = new Schema(title: String) Book = mongoose.model("Book", bookSchema) shelfBookSchema = new Schema( book: type: Schema.ObjectId ref: "Book" ) shelfSchema = new Schema( name: String books: [ shelfBookSchema ] ) Shelf = mongoose.model("Shelf", shelfSchema) ownerSchema = new Schema( firstName: String shelves: [ shelfSchema ] ) Owner = mongoose.model("Owner", ownerSchema) mongoose.connection.on "open", -> book1 = new Book(title:"How to make stuff") book1.save (err) -> throw err if err owner = new Owner(firstName:"John") shelf = new Shelf(name:"DIY Shelf") shelf.books.push _id: book1._id book: book1._id owner.shelves.push shelf owner.save (err) -> throw err if err #Let's find one owner and get all of his bookshelves and the books they containa Owner.findOne().populate("shelves.books.book").exec (err, owner) -> console.error owner.shelves[0].books ### Log shows: { book: 4fe3047401fc23e79c000003, _id: 4fe3047401fc23e79c000003 }] Great but how do I get the values of book like the title etc?? ### mongoose.connection.db.dropDatabase -> mongoose.connection.close() 

深海人口被添加到mongoose3.6。 https://github.com/LearnBoost/mongoose/issues/1377#issuecomment-15911192

对于你的例子,它会是这样的:

 Owner.find().populate('shelves').exec(PopulateBooks); function PopulateBooks(err, owners) { if(err) throw err; // Deep population is here Book.populate(owners, { path: 'shelves.books' }).exec(callback); } 

现在不支持嵌套的子文档人口。 我添加了这个职位的链接到未来的跟踪打开github问题。

https://github.com/LearnBoost/mongoose/issues/601