gpt4 book ai didi

javascript - Mongoose 错误 : Schema hasn't been registered for model when populate

转载 作者:IT老高 更新时间:2023-10-28 13:31:49 25 4
gpt4 key购买 nike

我正在尝试加入两个集合并能够获取组合数据。为此,使用 Mongoose,我应该使用填充语法来实现这一点。我收到未为“User_Fb”注册 Schema Schema 的错误消息。从我的代码中,我已经导出了模型并在我的 server.js 中需要,但错误仍然出现。我做错了什么?

feed_post.model.js

var mongoose = require('mongoose');
var conn_new_app = mongoose.createConnection('mongodb://localhost/new_app');
var User_fb = require('../models/fb_db.model');

var Schema = mongoose.Schema;
var feed_postSchema = new Schema({
user_id: { type: Schema.Types.ObjectId, ref: 'User_Fb' },
content: String,
location: String,
image: [{ type : String }]
});

var Feed_Post = conn_new_app.model('Feed_Post', feed_postSchema);

module.exports = Feed_Post;

fb_db.model.js

var mongoose = require('mongoose');
var conn_new_app = mongoose.createConnection('mongodb://localhost/new_app');
var Feed_Post = require('../models/feed_post.model');

var user_fb = new mongoose.Schema({
name: String,
location: String,
fb_id: Number
});

var User_Fb = conn_new_app.model('User_Fb', user_fb);

module.exports = User_Fb;

server.js

var express = require('express'),

mongoose = require('mongoose'),
User = require('./app/models/user.model'),
Post = require('./app/models/post.model'),
Maptest = require('./app/models/maptest.model'),
Feed_Post = require('./app/models/feed_post.model'),
User_Fb = require('./app/models/fb_db.model'),

app = express();

app.get('/testget', function(req,res){
Feed_Post.findOne().populate('user_id').exec(function(err, c) {
if (err) { return console.log(err); }

console.log(c.fk_user.userName);
});
});

更新自 Pier-Luc Gendreau Answer's

fb_db.model.js

module.exports = function (connection) {
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var user_fb = new mongoose.Schema({
name: String,
location: String,
fb_id: Number
});

return connection.model('User_FB', user_fb);;
}

feed_post.model.js

module.exports = function (connection) {
var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var feed_postSchema = new Schema({
user_id: { type: Schema.Types.ObjectId, ref: 'User_Fb' },
content: String,
location: String,
image: [{ type : String }]
});

return connection.model('Feed_Post', feed_postSchema);;
}

server.js

var express = require('express'),
app = express(),

mongoose = require('mongoose'),
conn_new_app = mongoose.createConnection('mongodb://localhost/new_app'),
User_Fb = require('./app/models/fb_db.model')(conn_new_app),
Feed_Post = require('./app/models/feed_post.model')(conn_new_app);

app.get('/testget', function(req,res){
Feed_Post.find().populate('user_id').exec(function(err, res) {
if (err) { return console.log(err); }
console.log(res);
});
});

最佳答案

这就是我要做的所有事情 Customer.findOne({}).populate({ path: 'created_by', model: User }) 而不是这个 Category.findOne({ }).populate({'author'})

关于javascript - Mongoose 错误 : Schema hasn't been registered for model when populate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com