簡體   English   中英

mongodb 計算 2 個字段的唯一約束

[英]mongodb count unique constraint on 2 fields

在我的汽車 mongodb 系列中,我有 user_id 和 default_car 字段。 一個用戶只能擁有一輛默認汽車,但可以擁有多輛非默認汽車。 例如這個值應該是有效的:

[{user_id:1,default_car:true},{user_id:2,defaut_tool:true},{user_id:2,defaut_tool:false},{user_id:2,defaut_tool:false}]

id 為 1 的用戶只有一輛車,而 id 為 2 的用戶有 3 輛車,其中一輛是默認車。 這個例子應該是無效的:

 [{user_id:1,default_car:true},{user_id:2,defaut_tool:true},{user_id:2,defaut_tool:true},{user_id:2,defaut_tool:false}]

我需要定義什么樣的約束? 我在 nodejs 上使用 mongoose。

如果您希望滿足 MongoDB 內的唯一性約束,那么您將需要查看唯一索引

在您的特定情況下,聽起來應該強制執行唯一性約束是每個特定的user_id不能有多個default_car 因此,您的索引也應該是部分索引 具體來說,索引可能類似於以下內容:

db.<collectionName>.createIndex({_user_id:1},{unique:true, partialFilterExpression:{default_car:true}})

暫無
暫無

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

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