1
現在在我的項目中,我使用了Play框架(JAVA)和Mongodb。我的收藏中有兩個字段,分別是哈希和地址。請注意,地址欄是一個對象。如何避免Mongodb中的重複對象條目?
我的收藏是這樣的:
db.hashed.find()
{ "_id" : ObjectId("55f04cd0d4c68ef1211e6ee4"), "hash" : "1axuhWcqKB", "address" : { "floor" : 0, "block" : "5", "city" : "Mumbai", "state" : "ABC", "pincode" : 0, "latitude" : "77.6876", "longitude" : "13.57558", "hash" : "1axuhWcqKB" } }
{ "_id" : ObjectId("55f04cd1d4c68ef1211e6ee6"), "hash" : "1ay4P407qF", "address" : { "floor" : 0, "block" : "5", "city" : "Mumbai", "state" : "ABC", "pincode" : 0, "latitude" : "77.6876", "longitude" : "13.57558", "hash" : "1ay4P407qF" } }
{ "_id" : ObjectId("55f04cd2d4c68ef1211e6ee8"), "hash" : "1ayDn3Zemh", "address" : { "floor" : 0, "block" : "5", "city" : "Mumbai", "state" : "ABC", "pincode" : 0, "latitude" : "77.6876", "longitude" : "13.57558", "hash" : "1ayDn3Zemh" } }
現在我思考,如何避免重複的地址條目,這顯然不應該獲得插入到數據庫中。我試圖通過地址字段確保索引,但看起來並不能解決這個問題。
> db.users.ensureIndex({"address" : 1},{unique: true})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 2,
"numIndexesAfter" : 2,
"note" : "all indexes already exist",
"ok" : 1
}
希望有人能幫助我解決這個問題。
感謝您的回覆。那麼這是否意味着我永遠無法在數據庫級別檢查重複項,看起來我只能通過代碼來執行此操作?也許你可以對此發表評論:) – murasing
你可以通過改變你的索引來查看重複內容:users.ensureIndex(「{address.floor:1,address.block:1,address.city:1,」+ \t「address.state:1,address.pincode:1,address.latitude:1,」+ \t \t「address.longitude:1}」,「{name:\」unique_address \「,unique:true} 「); – rsutormin
我會更好地更新我的答案...完成。 – rsutormin