避免在没有数据的情况下在mongoDB中插入
如果没有数据,我如何避免在mongoDB中插入数据。因为每次我使用插入命令,它都会创建没有数据的_id。 示例:db.collection_name.insert({}) 正在文档中创建_id。如何避免它。避免在没有数据的情况下在mongoDB中插入
您可以使用猫鼬ORM和可以定义的验证,如:
名称:
{ message: 'Validator "required" failed for path name',
name: 'ValidatorError',
path: 'name',
type: 'required' } }
感谢您的回复,但我正在使用和尚。如果req.body为空,是否有避免插入的方法?它不应该插入值。 –
的MongoDB 3.2具有架构验证
var UserSchema = new Schema({
name: { type: String, required: true }
});
喜欢哪款会产生看起来错误消息集成。 所以你可以检查是否存在“名称”属性,如果不存在,那么验证失败,然后根本不会插入文档。
https://docs.mongodb.com/v3.2/core/document-validation/
db.createCollection("contacts",
{ validator: { $or:
[
{ phone: { $type: "string" } },
{ email: { $regex: /@mongodb\.com$/ } },
{ status: { $in: [ "Unknown", "Incomplete" ] } }
]
}
})
感谢您的意见和建议,但我正在使用表单提交数据。我正在使用Express.js和尚。所以如果你有同样的建议让我知道。这将会非常棒。提前致谢。 –
@Vijaypandey对不起,但你能解释为什么这不是你的解决方案吗? –
为什么要叫 “.insert({})”? MongoDB的模式更少,然后用空对象调用“insert”将创建一个带_id的新Document(默认索引字段)。那么MongoDB究竟能够做什么呢:-) –
其实我是在提交表单。我已经完成了前端JavaScript验证,但在JavaScript禁用的情况下,我也想在服务器端检查它。我在nodeJs中使用和express表达。 –
现在更清楚了。我会写一个解决方案 –