如何仅从mongodb模式中获取嵌入文档中的所有数据?

如何仅从mongodb模式中获取嵌入文档中的所有数据?

问题描述:

有两种模式:用户模式和书籍模式。有n个用户,可以有任意数量的书籍。我现在必须获取数据库中存在的所有书籍。我无法为此解决任何解决方案。我曾尝试使用填充,但它不工作。什么可以是这种问题的最佳方法。我不想要用户架构的任何数据,只有每个用户的bookList。如何仅从mongodb模式中获取嵌入文档中的所有数据?

这里是userSchema.js

var mongoose = require('mongoose'); 
var Book = require('./book'); 

var userSchema={ 
    profile:{ 
     // Some more fields. 
    }, 
    bookList:[Book.bookSchema] //Interested here 
}; 

module.exports = new mongoose.Schema(userSchema); 
module.exports.userSchema = userSchema; 

这里是bookSchema

变种猫鼬=要求( '猫鼬');

var bookSchema = { 
    __id : mongoose.Schema.Types.ObjectId, 
    info:{ 
     //Some fields. 
    } 
} 

module.exports = new mongoose.Schema(bookSchema); 
module.exports.bookSchema = bookSchema; 

该模型。

var mongoose = require('mongoose'); 
var _ = require('underscore'); 
var autoIncrement = require('mongoose-auto-increment'); 
module.exports = function(wagner){ 
//Some codes 
    var Book = mongoose.model('Book', require('./book'), 'books'); 
    var User = mongoose.model('User', require('./user'), 'users'); 
    var models = { 
      Book:Book, 
      User:User 
    } 
    _.each(models, function(value, key) { 
     wagner.factory(key, function() { 
      return value; 
     }); 
    }); 
    return models; 
} 

我可以在这里得到任何帮助吗?我一直坚持几个小时!

我尝试使用

api.get('/universe/book', wagner.invoke(function(User, Book) {// done 
     return function(req, res) { 
      User.find({},{profile:0, _id:0}, function(err, data){ 
       res.json({data:data}); 
      }) 
     }; 
    })); 

和现在的工作。