Mongoでは、コレクション中の文書に対して(1,2,3,4、...、n + 1)のような人間が読めるIDを作成する必要があります。ネイティブのmongoツールでそれらを作成する方法はありますか、それともプログラムのロジックで作成する必要がありますか? p.s私はORMとしてmongoengineを使用します。MongoDbで人間が読めるIDを作成するには
1
A
答えて
3
http://www.mongodb.org/display/DOCS/Object+IDs#ObjectIDs-SequenceNumbers
従来のデータベースは、多くの場合、 主キーのために増加するシーケンス番号を使用します。 MongoDBでは、オブジェクトID を代わりに使用することをお勧めします。コンセプトは、非常に大規模なマシンのクラスタでは、 がグローバルであるより均一なオブジェクトIDを作成する方が簡単で というシーケンス番号が増えることです。
ただし、シーケンス番号が必要な場合があります。これを行うには、 「カウンター」文書を作成し、findAndModify Commandを使用します。 (添付のリンクから)
コードサンプル:
function counter(name) {
var ret = db.counters.findAndModify({query:{_id:name}, update:{$inc : {next:1}}, "new":true, upsert:true});
// ret == { "_id" : "users", "next" : 1 }
return ret.next;
}
db.users.insert({_id:counter("users"), name:"Sarah C."}) // _id : 1
db.users.insert({_id:counter("users"), name:"Bob D."}) // _id : 2
グレート、I'am怠惰なログとできない公式のドキュメンテーションに)) – Denis