Node, Mongoose js - 填充从不返回结果
Node, Mongoose js - Populate never returning a result
我是 MongoDB / Mongoose 的新手,我正在尝试将用户与网站集相匹配。这个想法是将用户分配到一个站点。我想根据存储在站点集合中的 id 获取此用户名,然后显示它。用户名可以更改,所以我不能使用子文档。
尝试使用填充将用户名绑定到我的查询时,查询从未 returns 结果。没有错误,什么都没有。人们可以称之为挂起,但它是异步的,所以我不知道 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);
}
});
我是 MongoDB / Mongoose 的新手,我正在尝试将用户与网站集相匹配。这个想法是将用户分配到一个站点。我想根据存储在站点集合中的 id 获取此用户名,然后显示它。用户名可以更改,所以我不能使用子文档。
尝试使用填充将用户名绑定到我的查询时,查询从未 returns 结果。没有错误,什么都没有。人们可以称之为挂起,但它是异步的,所以我不知道 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);
}
});