繁体   English   中英

Node,Mongoose js-填充永远不会返回结果

[英]Node, Mongoose js - Populate never returning a result

我是MongoDB / Mongoose的新手,并且试图将用户与网站集匹配。 这个想法是将用户分配到一个站点。 我想基于存储在网站集中的ID获取此用户名,然后显示它。 用户名可以更改,因此我不能使用子文档。

尝试使用populate将用户名绑定到我的查询时,查询从不返回结果。 没有错误,什么都没有。 可以将其称为挂起,但它是异步的,因此mongo在后台执行的操作我都不知道。

我的身份验证系统是passport.js。

这是我的模型:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var passportLocalMongoose = require('passport-local-mongoose');

var Account = new Schema({
    username: String,
    password: String,
    isadmin: Boolean,
    islocked: Boolean
});

Account.plugin(passportLocalMongoose);

module.exports = mongoose.model('Account', Account);


var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var siteSchema = new Schema({
    title: String,
    locked: Boolean,
    userid: {type: mongoose.Schema.Types.ObjectId, ref: 'Account'}
});

var Site = mongoose.model('Site', siteSchema);

module.exports = Site;

这是我的查询:

Site.find({}.populate('userid'), function (err, postIn) {
    if (err) {
        throw err
    } else {
        res.send(postIn);
    }
});

任何想法-坚持了一段时间。

使用.exec。 它配置填充。

Site.find({}).populate('userid').exec(function (err, postIn) {
        if (err) {
            throw err
        } else {
            res.send(postIn);
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM