Mongodb mongoose上parent下的Club childschema

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

我正在使用mongoose模块 我有两个模式文件

//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
并与用户一起使用?是的,我想要相同的