我有一个可以在node上运行的应用程序.与MongoDB和mongoose合作的js.我的应用程序只是发送/删除/编辑表单数据,为此,我有这样的mongoose模型:

var mongoose = require('mongoose');

module.exports = mongoose.model('appForm', {
    User_id : {type: String},
    LogTime : {type: String},
    feeds : [   
    {
        Name: {type: String},
        Text : {type: String},
    }
    ]
});

而且效果很好!

现在,我想向表单中添加一个函数,这样用户就可以向表单中添加一个字段(或多个字段),并在其中输入文本并发布.

我知道建议使用strict: falseSchema.Types.Mixed.然而,我不明白...

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var feedSchema = new Schema({strict:false});

module.exports = mongoose.model('appForm', feedSchema);

有什么建议吗?提前谢谢!

推荐答案

通过将strict: false选项作为第二个参数提供给Schema构造函数,将其应用于现有架构定义:

var appFormSchema = new Schema({
    User_id : {type: String},
    LogTime : {type: String},
    feeds : [new Schema({
        Name: {type: String},
        Text : {type: String}
    }, {strict: false})
    ]
}, {strict: false});

module.exports = mongoose.model('appForm', appFormSchema);

如果希望将feeds作为完全无模式,可以使用Mixed:

var appFormSchema = new Schema({
    User_id : {type: String},
    LogTime : {type: String},
    feeds : [Schema.Types.Mixed]
}, {strict: false});

module.exports = mongoose.model('appForm', appFormSchema);

Mongodb相关问答推荐

MongoDB中的数据类型没有通过数据库Pyspark更改(从字符串到日期)

Spring数据MongoDB(聚合)

MongoDB $lookup 查找字段值数组

从MongoDB迁移到PostgreSQL:为PostgreSQL编写聚合管道查询

如何 db.getUser() 使用 go mongo-driver

可变用户 Select

如何在mongodb中级联删除文档?

System.FormatException occurred in MongoDB.Bson.dll - XXX is not a valid 24 digit hex string

为什么 MongoDB 配置服务器必须只有一个或三个?

哪个库最适合用于带有 Scala 的 MongoDB?

子文档上的mongoose唯一索引

如果 mongoDB 服务器正在运行,如何从驱动程序判断

为什么 local.oplog.rs 上每隔几分钟的活动就会锁定 mongo 客户端

将MongoDB连接到前端?

什么是 mongodb 中的admin数据库?

在 Mongoose 中填写所有必填字段

MongoDB - 投影一个并不总是存在的字段

如何在 mongoDB 中聚合巨大的数组?

使用已排序的数据获取不同的值

如何使用 Pymongo 在 MongoDB 中 Select 单个字段?