Node.js 嵌套猫鼬模式不起作用
我有一个带有Node.js 嵌套猫鼬模式不起作用,node.js,mongodb,mongoose,model,nested,Node.js,Mongodb,Mongoose,Model,Nested,我有一个带有Nodejs和Mongoose的简单应用程序,我试图得到嵌套结果,但它不起作用 我有2个文件中的2个模型: 我使用以下版本: mongodb: "version": "3.1.3" mongoose: "version": "5.2.9" users.js const mongoose = require('mongoose'); const Schema = mongoose.Schema; // create user Schema & model const use
Nodejs
和Mongoose
的简单应用程序,我试图得到嵌套结果,但它不起作用
我有2个文件中的2个模型:
我使用以下版本:
mongodb: "version": "3.1.3"
mongoose: "version": "5.2.9"
users.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create user Schema & model
const userSchema = new Schema({
IdUser:{
type: Number
},
Email:{
type: String,
required: [true, 'Email field is required']
},
Nick:{
type: String,
required: [true, 'Nick field is required']
},
Password:{
type: String,
required: [true, 'Password field is required']
},
Admin:{
type: Boolean,
default: false
},
Results:{
type: Schema.Types.ObjectId,
ref: 'result'
}
});
const user = mongoose.model('user', userSchema);
module.exports = user;
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create results Schema & model
const resultSchema = new Schema({
IdEvent:{
type: Number
},
User: {
type: Schema.Types.ObjectId,
ref: 'user'
},
Result: {
type: Number
}
});
const result = mongoose.model('result', resultSchema);
module.exports = result;
results.js
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create user Schema & model
const userSchema = new Schema({
IdUser:{
type: Number
},
Email:{
type: String,
required: [true, 'Email field is required']
},
Nick:{
type: String,
required: [true, 'Nick field is required']
},
Password:{
type: String,
required: [true, 'Password field is required']
},
Admin:{
type: Boolean,
default: false
},
Results:{
type: Schema.Types.ObjectId,
ref: 'result'
}
});
const user = mongoose.model('user', userSchema);
module.exports = user;
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// create results Schema & model
const resultSchema = new Schema({
IdEvent:{
type: Number
},
User: {
type: Schema.Types.ObjectId,
ref: 'user'
},
Result: {
type: Number
}
});
const result = mongoose.model('result', resultSchema);
module.exports = result;
之后,我使用以下查询:
//RESULTS
//http://localhost/getEvents?IdEvent=1
router.get('/getResults',function(req,res,next){
Result.find({IdEvent:req.query.IdEvent}).populate('User')
.then(function(result){
res.send(result);
});
});
在我的邮递员身上,我得到了这样的结果:
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"IdUser": 1,
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"IdUser": 2,
"Result": 2
}
]
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"User": {1, "email@email.com","Nick"}
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"User": {2, "email@email.com","Nick"}
"Result": 2
}
]
我想要这个结果:
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"IdUser": 1,
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"IdUser": 2,
"Result": 2
}
]
[
{
"_id": "5b83cd2913769f1e267191cd",
"IdEvent": 2,
"User": {1, "email@email.com","Nick"}
"Result": 1
},
{
"_id": "5b83cd3013769f1e26719215",
"IdEvent": 2,
"User": {2, "email@email.com","Nick"}
"Result": 2
}
]
怎么了
提前谢谢你 这里,如果提供一些链接,请参考它们并了解mongoose中的填充函数以及如何使用嵌套查询
尝试
populate('user')
使用小的'u'与('user')结果相同。很抱歉,如果提供一些链接供您参考,并了解mongoose中的填充函数以及如何使用嵌套查询,则实际上应该是UserHere。。。