2013-08-20 45 views
16

Làm thế nào để đặt khóa chính với tăng tự động trong MongoDB?Làm thế nào để thiết lập khóa chính với tăng tự động trong MongoDB?

Thông thường MongoDB tạo ObjectID. Tôi muốn sử dụng khóa chính tăng tự động của chính tôi như MySQL.

Ví dụ sẽ được đánh giá cao :)

+3

Kết quả đầu tiên của Google: http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/ – Sammaye

+0

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

Trả lời

9

Tôi viết blog về vấn đề này ở đây:
http://www.alexjamesbrown.com/blog/development/mongodb-incremental-ids/

Tôi cũng bắt đầu một máy phát điện int id cho người lái xe C#:
https://github.com/alexjamesbrown/MongDBIntIdGenerator

Tuy nhiên, incrementing ID sẽ không mở rộng hiệu quả.

+0

Tại sao số ID tăng lên 't quy mô hiệu quả? – avi

+2

Bởi vì mỗi nút sẽ phải liên tục biết id "mới nhất" ... bông tuyết Twitter 'cung cấp một giải pháp cho điều này, tuy nhiên. Ngoài ra, hãy đọc điều này - https://blog.serverdensity.com/switching-to-mongodb-and-auto-increment/ – Alex

+0

Ồ, cảm ơn bạn! Blog đó giải thích độc đáo. – avi

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

$ colle nghĩa là bạn cần tạo bộ sưu tập Auto increment key nào.