Re: [問題] 不知道有沒有人有在玩PyMongo的呢

看板Python作者 (carl)時間10年前 (2013/10/10 02:30), 編輯推噓3(302)
留言5則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《AlexanderXXX ( )》之銘言: : 當初一直想摸看看所謂的Non-SQL Database : 就拿它來練習作case看看 : 只是現在碰到一個瓶頸 : 就是我想要建立一個有Primary Key的collection : 也有在網路上看到 MongoDB有一個叫做"_id"的內建欄位可以拿來用 : 他確實也算是意義上的Primary Key : 但是.... : 我自己在使用的時候 碰到的狀況是 : 假設我已經insert了一組"_id"為1的set 比方說{ "_id": 1, "name": "Alex" } 這樣好 : 了 : 但我接下來如果要再insert一組{ "_id": 1, "name": "Benny" } : 這時我期待的反應應該是 insert會失敗 : 但相反的 這筆inser卻成功了 而且collection內原有的"Alex" 竟然被取代了XD... : 這樣的現象 好像又無法跟SQL的Primary Key有相同的運作方式 讓我有點困擾 : 是說我當然可以在insert之前 先query看是否存在這個key : 但這樣的作法除了效能較差之外 : 感覺也沒有完全杜絕同樣key的資料匯被覆蓋的問題 : 不知道有沒有哪位大大也有玩過MongoDB的 可以討論看看XD 我在 mongodb shell 裡測 > db.test.insert({a:1}) > db.test.find() { "_id" : ObjectId("5255a01a5b9251448bf3826f"), "a" : 1 } > db.test.insert({_id:1, a:1}) > db.test.find() { "_id" : ObjectId("5255a01a5b9251448bf3826f"), "a" : 1 } { "_id" : 1, "a" : 1 } > db.test.insert({_id:1, a:2}) E11000 duplicate key error index: test.test.$_id_ dup key: { : 1.0 } > 看來是有擋說@@a -- http://blog.carlcarl.tw -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.250.189.31

10/10 02:30, , 1F
可能要講一下你Pymongo是怎麼用的~~
10/10 02:30, 1F

10/10 18:10, , 2F
我覺得他可能用到save...不是用insert
10/10 18:10, 2F

10/12 10:15, , 3F
噢 聽樓上這麼一說...我還以為只是名字不一樣orz....
10/12 10:15, 3F

10/12 10:16, , 4F
立馬試試!!!
10/12 10:16, 4F

10/12 11:54, , 5F
原來是我一直以來搞錯了....感謝解惑!!
10/12 11:54, 5F
文章代碼(AID): #1ILQ2wZ8 (Python)
文章代碼(AID): #1ILQ2wZ8 (Python)