Tạo Auto-Increment Field Trong MongoDB - VinaSupport
Không như những Hệ quản trị CSDL khác như MySQL, PostgreSQL,… MongoDB không có khái niệm Auto-Increment. Mỗi một bản ghi khi được thêm vào CSDL sẽ có 1 object ID với các ký tự ngẫu nhiên (Hoặc theo 1 quy tắc do MongoDB định nghĩa)

Bài viết này sẽ hướng dẫn cách tạo một trường tự động tăng (Auto-Increment Field) trong MongoDB
Sử dụng counters collection
Ý nghĩa của cách này là tạo 1 bảng để lưu lại giá trị tăng dần của ID.
Ví dụ: Tạo bảng users có trường _id là số tư nhiên tự tăng
Mở Mongo Shell để thực hiện các bước sau:
Bước 1: Tạo bảng counters bằng việc thêm 1 bản ghi có cấu trúc object như sau:
db.counters.insert( { _id: "userid", seq: 0 } )Bước 2: Tạo hàm javascript để lấy ID tiếp theo (Cú paste function này vào Mongo Shell)
function getNextSequence(name) { var ret = db.counters.findAndModify( { query: { _id: name }, update: { $inc: { seq: 1 } }, new: true } ); return ret.seq; }Bước 3: Xác nhận bằng việc thêm dữ liệu cho bảng users như sau
db.users.insert( { _id: getNextSequence("userid"), name: "Nguyen Van A" } ) db.users.insert( { _id: getNextSequence("userid"), name: "Nguyen Van B" } )Kết quả:

Chú ý: Để tạo thêm trường Auto-Increment cho bảng khác ví dụ bảng products chẳng hạn. Chúng ta thêm 1 bản ghi vào bảng counters với trường _id: “productid”, rồi thêm dữ liệu cho bảng products giống như là:
db.products.insert( { _id: getNextSequence("productid"), name: "Máy hàn" } )Lưu ý: MongoDB khuyên chúng ta nếu không cần thiết thì không nên tạo auto-increment.
Generally in MongoDB, you would not use an auto-increment pattern for the _id field, or any field, because it does not scale for databases with large numbers of documents. Typically the default value ObjectId is more ideal for the _id.
Nguồn: vinasupport.com
Từ khóa » Trường Object Id Là Gì
-
ObjectId Trong MongoDB
-
Sự Khác Biệt Giữa _id: ObjectID Và String Là Gì? [bản Sao] - HelpEx
-
Loại Dữ Liệu BSON - ObjectId - HelpEx
-
ObjectId Trong MongoDB
-
TÌM HIỂU VỀ MONGODB - Viblo
-
MongoDB - Cơ Bản (phần 1) - Viblo
-
ID Người Dùng Của Tôi Là Gì Và Tại Sao Tôi Cần Nó Cho Office 365 Dành ...
-
MongoDB Là Gì? 9 Phần Mềm Quản Trị Mongodb Nên Sử Dụng
-
Populate Trong Mongoose - Freetuts
-
Hoạt động CRUD MongoDB - Trang Chủ - .vn
-
Phương Thức Upsert Trong MongoDB - W3seo Insert Và Update ...
-
Những Gì Bạn Cần Biết Về Cơ Sở Dữ Liệu đa Nền Tảng MongoDB
-
Truy Vấn Dữ Liệu Trong MongoDB
-
Tìm Hiểu MongoDB + Mongo Shell - Gists · GitHub