【问题标题】:How to fetch all data from embedded documents only in a mongodb schema?如何仅在 mongodb 模式中从嵌入式文档中获取所有数据?
【发布时间】:2017-04-12 14:16:49
【问题描述】:

有两种模式:用户模式和书籍模式。有 n 个用户,可以拥有任意数量的书籍。我现在必须获取数据库中存在的所有书籍。我无法为此找出任何解决方案。我尝试使用填充,但它不起作用。解决此类问题的最佳方法是什么。我不想要用户架构的任何数据,只想要每个用户的 bookList。

这里是 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 mongoose = require('mongoose');

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;
}

我可以在这里得到任何帮助吗?我已经被困了好几个小时了!

【问题讨论】:

    标签: node.js mongodb mongoose mongoose-schema mongoose-populate


    【解决方案1】:

    我尝试过使用

    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});
                })
            };
        }));
    

    现在可以使用了。

    【讨论】:

      猜你喜欢
      • 2020-03-08
      • 2020-11-22
      • 1970-01-01
      • 2021-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      相关资源
      最近更新 更多