簡體   English   中英

您可以在 validate_doc_update function 中查詢數據庫嗎?

[英]Can you query the DB inside a validate_doc_update function?

我正在使用 validate_doc_update 函數對要存儲的 object 進行基本驗證。 例如,這對於確保存在某些字段非常有用。 但是有沒有辦法根據 validate_doc_update function 中的查詢進行驗證? 例如,我希望人們能夠注冊將物品帶到聚餐。 所以每個 object 都會有姓名、電話和食物(例如蘇打水、沙拉、薯條)的字段。 所以我的驗證 function 將檢查每個字段。 沒問題。 但我也想確保不超過兩個人注冊相同的食物(不僅僅是一個基本的獨特限制)。 因此,如果正在驗證具有食品價值“芯片”的新 object,並且數據庫中已經有 2 個具有食品價值“芯片”的對象,則驗證應該失敗。 有沒有辦法通過驗證文檔來做到這一點?

在 validate_doc_update 中沒有運行查詢的工具。

解決此問題的一種方法是將食品項目與用戶文檔分離; 取而代之的是一份代表便餐的文件:

{
   _id: "potluck",
   chips: { 
      needed: 2,
      providers: ["user_id_1"]
   },
   soda: {
     needed: 5,
     providers: ["user_id_2","user_id_3"]
   }
}

在這里驗證項目的注冊非常容易。 該文檔包含大量信息,例如始終needed - providers.length 用戶 id 的鏈接食品項目用戶已注冊提供。

通過這種方法,使用一兩個視圖很容易生成便餐報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM