2016-11-07 109 views
0

如果没有数据,我如何避免在mongoDB中插入数据。因为每次我使用插入命令,它都会创建没有数据的_id。 示例:db.collection_name.insert({}) 正在文档中创建_id。如何避免它。避免在没有数据的情况下在mongoDB中插入

+1

为什么要叫 “.insert({})”? MongoDB的模式更少,然后用空对象调用“insert”将创建一个带_id的新Document(默认索引字段)。那么MongoDB究竟能够做什么呢:-) –

+0

其实我是在提交表单。我已经完成了前端JavaScript验证,但在JavaScript禁用的情况下,我也想在服务器端检查它。我在nodeJs中使用和express表达。 –

+0

现在更清楚了。我会写一个解决方案 –

回答

0

您可以使用猫鼬ORM和可以定义的验证,如:

名称:

{ message: 'Validator "required" failed for path name', 
    name: 'ValidatorError', 
    path: 'name', 
    type: 'required' } } 
+0

感谢您的回复,但我正在使用和尚。如果req.body为空,是否有避免插入的方法?它不应该插入值。 –

1

的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" ] } } 
     ] 
    } 
}) 
+0

感谢您的意见和建议,但我正在使用表单提交数据。我正在使用Express.js和尚。所以如果你有同样的建议让我知道。这将会非常棒。提前致谢。 –

+0

@Vijaypandey对不起,但你能解释为什么这不是你的解决方案吗? –

相关问题