在貓鼬採用了獨特的約束,如:Azure Cosmos DB不支持MongoDB/Mongoose唯一索引嗎?
email: { type:String, unique:true }
似乎並沒有工作。我可以用同一封電子郵件保存多個用戶。
有什麼我需要做的創建一個獨特的索引?
在貓鼬採用了獨特的約束,如:Azure Cosmos DB不支持MongoDB/Mongoose唯一索引嗎?
email: { type:String, unique:true }
似乎並沒有工作。我可以用同一封電子郵件保存多個用戶。
有什麼我需要做的創建一個獨特的索引?
今天,在Cosmos DB的MongoDB API中不支持唯一索引。創建索引時不能指定unique:true
。
你需要在你的應用層實現這一點。
編輯 - 正如指出的,這是截至2017年11月正式發佈的MongoDB API。
這可能是因爲您的收藏已爲您指定的字段重複了值。您需要刪除重複項或創建新數據庫以啓用唯一索引。
正確 - 相應地更新了我的答案。感謝您指出了這一點。 –
這不提供問題的答案。一旦你有足夠的[聲譽](https://stackoverflow.com/help/whats-reputation),你將可以[對任何帖子發表評論](https://stackoverflow.com/help/privileges/comment);相反,[提供不需要提問者澄清的答案](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- I-DO-代替)。 - [來自評論](/ review/low-quality-posts/18629547) – JordanHendrix
無需創建新數據庫。您需要創建新的集合,因爲具有唯一約束的createIndex僅對Cosmos DB中的空集合起作用。如果您正在使用mongorestore/mongoimport導入現有集合,只需在Cosmos DB中的空集合上創建唯一索引後使用--noIndexRestore標誌執行此操作。 – alekseys
您需要從集合**第一個**中刪除重複條目。該索引在創建時會失敗,因爲重複項存在,因此不會創建。另外一個常見的原因是編寫單元測試刪除數據庫,在發佈測試之前,「缺省」背景模式索引創建未完成。 –
@NeilLunn這是一個新的集合 - 我沒有重複。此外,我讓它坐了一會兒,然後我提交了相同信息的第二條記錄。我熟悉常規Mongo DB的行爲。我特別詢問Azure Cosmos DB。 – drew
Mongoose與Cosmos DB的MongoDB API是否支持唯一索引無關。 @ NeilLunn的標籤編輯是正確的,因爲這個問題直接關於Cosmos DB/DocumentDB(標籤是同義詞)。 –