2013-08-20 21 views
16

MongoDBの自動インクリメントでプライマリキーを設定する方法は?MongoDBの自動インクリメントでプライマリキーを設定する方法は?

通常、MongoDBはObjectIDを生成します。私はMySQLのような私自身の自動増分プライマリキーを使用したいと思います。

例をいただければ幸いです:)

+3

Googleの最初の検索結果:http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Sammaye

+0

http://stackoverflow.com/a/36124413/2837412 –

答えて

9

私はここにこれについてブログ:私はまた、C#のドライバーのためのint型のidジェネレータを開始し
http://www.alexjamesbrown.com/blog/development/mongodb-incremental-ids/


https://github.com/alexjamesbrown/MongDBIntIdGenerator

しかし、IDをインクリメント効果的に拡大縮小されません。

+0

IDを増やす理由効果的なスケール? – avi

+2

各ノードは常に「最新の」IDを知っていなければならないでしょう...しかし、Twitterの「snowflake」はこれに対する解決法を提供します。また、これをお読みください - https://blog.serverdensity.com/switching-to-mongodb-and-auto-increment/ – Alex

+0

ああ、ありがとう!そのブログはうまく説明する。 – avi

6
$db->execute("return db.getCollection('autoInccollection').findAndModify({ 
         query: { collection: '$colle' }, 
         update: { '$inc': { primaryKey: 1 } },new: true 
          })"); 

$ colleは、自動インクリメントキーを作成するために必要なコレクションです。

関連する問題