如何仅从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});
})
};
}));
和现在的工作。