如果我将新字段直接添加到我的MongoDB数据库中,而忘记将它们添加到我的Mongoose模式中,那么我如何才能提醒自己注意这个问题,而不让它默默地失败。
下面的示例显示,所有字段都是从查询返回的(无论架构如何),但如果您访问密钥,则未定义字段。
var mongoose = require('mongoose');
var user_conn = mongoose.createConnection('mongodb://db/user');
var userSchema = mongoose.Schema({
email: String,
// lo
几天后,我已经从速成web服务中使用mongoose模式创建了一个MongoDB集合,在mongoose表中找到了一个新字段的需求,因此在mongoose模式中添加了该字段,并尝试在现有字段中插入一个新添加字段的值,但它没有插入到新添加的文档中。
因此,作为一个故障排除过程,我完全删除了我现有的集合,然后将我的新文档插入到一个集合中,然后发现它开始正常工作。我新插入的字段被插入到集合中。那么,是否有其他方法可以在MongoDB中添加一个新字段,而不用删除整个集合。
我现有的用户集合架构:
var mongoose = require('mongoose');
var Schem
我正在使用。
我有以下模式:
var mongoose = require('mongoose');
var User = require('./User');
var TicketSchema = new mongoose.Schema({
user : { type: mongoose.Schema.Types.ObjectId, ref: 'User', required: true },
},
{
timestamps: true
});
var DrawSchema = new mongoose.Schema({
我有一个高并发和并行的情况,希望_id字段由MongoDB创建,而不是由mongoose创建,这样我就可以使用_id字段中的以插入文档的顺序可靠地查询文档。
这个是可能的吗?现在我不知道如何使用mongoose做到这一点,因为用{_id: false}标记一个模式并尝试保存它会返回一个错误document must have an _id before saving。