使用 Mongoose 将对象存储在对象数组中

Posted

技术标签:

【中文标题】使用 Mongoose 将对象存储在对象数组中【英文标题】:Storing objects in object array with Mongoose 【发布时间】:2016-05-21 10:54:54 【问题描述】:

我正在尝试将几个评论对象推送到我在猫鼬中的 UserSchema 中。但是,每当我运行此代码时,它只会为每个评论条目创建“_id”字段,即

function saveUser(user) 
  user.save(function (err) 
    if (err)
      console.log(err);
  );


function createUser(req, res, callback) 
    var userData = new User(username: req.params.username);

    getUserComment(req, res, function(testComment) 
        userData.comments.push(body: testComment);
        saveUser(userData);
    );

我的架构:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var CommentSchema = new Schema(
    comments: 
            score: Number,
            body: String
            
);

var UserSchema = new Schema(
    username: type: String, unique: true,
    comments: [CommentSchema]
,  collection: 'user');

module.exports = mongoose.model('User', UserSchema);

当然,我还有更多属性,但我只是包含了一个 sn-p 以表明即使是一个小例子也不起作用。

【问题讨论】:

【参考方案1】:

由于我声明 CommentSchema 的方式,调用中有一个额外的“cmets”。现在非常明显!

【讨论】:

以上是关于使用 Mongoose 将对象存储在对象数组中的主要内容,如果未能解决你的问题,请参考以下文章

将 Json 对象存储在 Mongoose 字符串键中

如何设置 Mongoose 模式以在 MongoDB 中存储对象数组?

Mongoose Mongodb 查询对象数组

使用 Mongoose 将项目推送到对象中的数组

如何使用 $push (Mongoose) 在数组中推送多个对象

用于存储子文档的 JSON 对象数组的 Mongoose 模式