Mongodb mongoose上parent下的Club childschema
我正在使用mongoose模块 我有两个模式文件Mongodb mongoose上parent下的Club childschema,mongodb,mongoose,schema,mongoose-schema,Mongodb,Mongoose,Schema,Mongoose Schema,我正在使用mongoose模块 我有两个模式文件 //First User File var mongoose = require('mongoose'); const UserActivitySchema = require('./useractivity') //User Schema var UserSchema = new mongoose.Schema({ username: { type: String }, activity: [UserAc
//First User File
var mongoose = require('mongoose');
const UserActivitySchema = require('./useractivity')
//User Schema
var UserSchema = new mongoose.Schema({
username: {
type: String
},
activity: [UserActivitySchema]
});
var User = module.exports = mongoose.model('User', UserSchema, 'User');
我已经尝试创建子文档,但无法实现它
这样,它将创建如下条目:
{
"_id" : ObjectId("5ab38941ffbb87124c673862"),
"username" : "peter",
"activity" : []
}
{
"_id" : ObjectId("5ab38941ffbb87124c673862"),
"username" : "peter",
"activity" : {
"message_count" : 0
}
}
我想要的是这样:
{
"_id" : ObjectId("5ab38941ffbb87124c673862"),
"username" : "peter",
"activity" : []
}
{
"_id" : ObjectId("5ab38941ffbb87124c673862"),
"username" : "peter",
"activity" : {
"message_count" : 0
}
}
非常感谢您的帮助。Mongoose
populate
可以帮助您获得所需的功能。您可以了解有关填充的更多信息。你可以这样做
创建UserActivitySchema
var mongoose = require('mongoose');
var UserActivitySchema = mongoose.Schema({
message_count:{
type: Number,
default: 0
}
});
module.exports = mongoose.model('UserActivity', UserActivitySchema, 'UserActivity');
现在像这样创建UserSchema
var mongoose = require('mongoose');
const UserActivitySchema = require('./useractivity')
//User Schema
var UserSchema = new mongoose.Schema({
username: {
type: String
},
activity: {
type: mongoose.Schema.Types.ObjectId,
ref: 'UserActivity',
}
});
var User = module.exports = mongoose.model('User', UserSchema, 'User');
现在,在保存用户时,将用户活动的id
保存在活动中
当您进行查询以获取用户时,您可以这样做
User.findOne({_id: 5ab38941ffbb87124c673862})
.populate('UserActivity')
.exec(function(err, user) {
// do stuff with returned user
});
是否要在活动
中存储用户活动模式
的引用?例如,保存一个UserActivity
并与用户一起使用?是的,我想要相同的