2016-11-07 73 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對不起,但你能解釋爲什麼這不是你的解決方案嗎? –

相關問題