【问题标题】:Mongoose schema how to add an array猫鼬模式如何添加数组
【发布时间】:2017-04-22 03:15:07
【问题描述】:

我想知道如何在 Moongoose 模式中添加一个字符串数组。

我有以下代码,但它不起作用:

var message = new Schema({
    topic: String,
    content: String,
    restriction:String,
    sender:String,
    reciever:String,
    users:[String],
    read:{type: String, default: 'no'},
    like:{ type: Number, default: 0 },
    created_at: {type: Date, default: Date.now}
});

我说的是users。你能帮忙吗?

【问题讨论】:

标签: node.js mongodb


【解决方案1】:

将您在 cmets 和主要帖子中所说的拼凑在一起,我不禁认为您缺少猫鼬的建模步骤。

首先定义架构:

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

var MessageSchema = new Schema({
    topic: String,
    content: String,
    restriction:String,
    sender:String,
    reciever:String,
    users:[String],
    read:{type: String, default: 'no'},
    like:{ type: Number, default: 0 },
    created_at: {type: Date, default: Date.now}
});

那你得告诉猫鼬:

const Message = mongoose.model('Message', MessageSchema);

然后你可以创建一个实例来放入数据:

mongoose.connect('mongodb://localhost:27017/mydb'); // assuming that's a working mongo instance
let message = new Message();
message.users.push('Juliana');
message.save((e,u) => { console.log('New user saved!'); });

如果我错了,请发布更多关于什么不起作用的信息。

【讨论】:

    【解决方案2】:
    var message = new Schema({
          topic: String,
          content: String,
          restriction:String,
          sender:String,
          reciever:String,
          users:[{
            type: String
          }],
          read:{type: String, default: 'no'},
          like:{ type: Number, default: 0 },
          created_at: {type: Date, default: Date.now}
        });
    

    【讨论】:

      【解决方案3】:

      试试这个

      var message = new Schema({
            topic: String,
            content: String,
            restriction:String,
            sender:String,
            reciever:String,
            users:[
            {name: String}],
            read:{type: String, default: 'no'},
            like:{ type: Number, default: 0 },
            created_at: {type: Date, default: Date.now}
      
          });
      

      【讨论】:

      • 非常感谢您能告诉我如何更新该字段。假设我想添加一个新用户是这样的:message.users.push(newUsr);
      猜你喜欢
      • 2017-09-10
      • 2021-05-31
      • 2023-03-04
      • 1970-01-01
      • 2023-03-13
      • 2019-10-30
      • 2019-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多