ID MongoDB có tăng dần không?

Đôi khi, điều quan trọng là phải có một trường tùy chỉnh trong cơ sở dữ liệu với số gia tăng tự động khác với

Hãy xem xét ví dụ về sách trong thư viện. Cùng với “_id” duy nhất do mongodb cung cấp, chúng ta có thể cần “book_id” để đếm số sách trong thư viện

Sử dụng 'mongoose-auto-increment' để thực hiện tăng tự động

'mongoose-auto-increment' là plugin tự động tăng bất kỳ trường ID nào trên lược đồ của bạn mỗi khi tài liệu được lưu

Đầu tiên chúng ta cần cài đặt ‘mongoose-auto-increment’

npm install mongoose-auto-increment

Khi chúng tôi đã cài đặt plugin, việc sử dụng trở nên rất đơn giản. Chúng tôi cần tham chiếu đến nó, khởi tạo nó bằng cách chuyển vào kết nối cầy mangut của bạn và chuyển tự động tăng. plugin vào chức năng plugin() trên lược đồ của bạn. Trong ví dụ dưới đây, chúng ta có thể thấy cách chúng ta có thể sử dụng plugin 'mongoose-auto-increment' với cầy mangut

var mongoose = require('mongoose'),
Schema = mongoose.Schema,
autoIncrement = require('mongoose-auto-increment');
var connection = mongoose.createConnection("mongodb://localhost/myDatabase");
autoIncrement.initialize(connection);
var bookSchema = new Schema({
author: String,
title: String,
genre: String,
publishDate: Date
});
bookSchema.plugin(autoIncrement.plugin, { model: 'Book', field: 'bookId' });var Book = connection.model('Book', bookSchema);

Chúng tôi có thể tăng một trường như 'bookid' như trong ví dụ trên. Nếu chúng tôi muốn trường đó bắt đầu ở một số khác 0 hoặc tăng thêm nhiều hơn một, thì chúng tôi có thể thực hiện như hình bên dưới

bookSchema.plugin(autoIncrement.plugin, {
model: 'Book',
field: 'bookId',
startAt: 100,
incrementBy: 100
});

Tạo một mức tăng tự động tùy chỉnh

MongoDB không cung cấp bất kỳ chức năng vượt trội tự động tăng nào, như cơ sở dữ liệu SQL. Theo mặc định, nó sử dụng trường _id làm khóa chính để xác định duy nhất các tài liệu

Hãy xem xét tài liệu nhân viên sau đây. Chúng tôi muốn trường _id là một chuỗi số nguyên tăng tự động bắt đầu từ 1,2,3,4 đến n

{
"_id":1,
"emploee_name": "Raj",
"company": "abc"
}

Bây giờ, hãy tạo bộ sưu tập bộ đếm, bộ sưu tập này sẽ theo dõi giá trị chuỗi cuối cùng cho tất cả các trường chuỗi

>db.createCollection("counters")

Bây giờ, chúng ta hãy chèn tài liệu sau vào bộ sưu tập counters với employeeid làm khóa của nó

> db.counters.insert({
"_id":"employeeid",
"sequence_value": 0
})
WriteResult({ "nInserted" : 1 })

Trường sequence_value theo dõi giá trị cuối cùng của chuỗi

Sử dụng đoạn mã sau để chèn tài liệu trình tự này vào bộ sưu tập bộ đếm

>db.counters.insert({_id:"employeeid",sequence_value:0})

Bây giờ, chúng ta sẽ tạo một hàm getNextSequenceValue sẽ lấy tên dãy làm đầu vào, tăng số thứ tự lên 1 và trả về số thứ tự được cập nhật. Trong trường hợp của chúng tôi, tên dãy là employeeid

>function getNextSequenceValue(sequenceName){
var sequenceDocument = db.counters.findAndModify({
query:{_id: sequenceName },
update: {$inc:{sequence_value:1}},
new:true
});
return sequenceDocument.sequence_value;
}

Bây giờ, chúng ta có thể sử dụng hàm getNextSequenceValue để lấy dãy số tiếp theo như hình bên dưới

________số 8_______

Bây giờ, chúng ta hãy xem kết quả bằng cách sử dụng truy vấn tìm kiếm

>db.employees.find()

Truy vấn trên đã trả về các tài liệu sau đây có trường _id được tăng tự động

var mongoose = require('mongoose'),
Schema = mongoose.Schema,
autoIncrement = require('mongoose-auto-increment');
var connection = mongoose.createConnection("mongodb://localhost/myDatabase");
autoIncrement.initialize(connection);
var bookSchema = new Schema({
author: String,
title: String,
genre: String,
publishDate: Date
});
bookSchema.plugin(autoIncrement.plugin, { model: 'Book', field: 'bookId' });var Book = connection.model('Book', bookSchema);
0

Phần kết luận

Trong hướng dẫn này, chúng ta đã thấy cách chèn số tự động tăng trong mongodb bằng hai phương pháp khác nhau. Lần đầu tiên sử dụng plugin 'mongoose-auto-increment'. Thứ hai triển khai tự động tăng tùy chỉnh

ID MongoDB có được tạo tự động không?

Theo mặc định, MongoDB tạo một mã định danh ObjectID duy nhất được gán cho trường _id trong tài liệu mới trước khi ghi tài liệu đó vào cơ sở dữ liệu .

Làm cách nào để tạo ID tăng tự động trong MongoDB?

Hãy sử dụng các bước sau để tạo trình tự tăng tự động MongoDB cho id mục. .
Tạo bộ sưu tập mẫu
Chèn một tài liệu vào một bộ sưu tập
Chèn bản ghi vào bộ sưu tập
Trình tự cơ sở dữ liệu
Tạo một hàm JavaScript
Sử dụng chức năng JavaScript
Xem đã chèn bản ghi từ bộ sưu tập cửa hàng

ID đối tượng MongoDB có phải là duy nhất không?

MongoDB sử dụng ObjectIds làm giá trị mặc định của trường _id của mỗi tài liệu, được tạo trong quá trình tạo bất kỳ tài liệu nào. ID đối tượng được coi là khóa chính trong mọi bộ sưu tập MongoDB. Đó là mã định danh duy nhất cho mỗi tài liệu hoặc hồ sơ . cú pháp. ObjectId(

Mục đích của _id trong MongoDB là gì?

_id là khóa chính của các phần tử trong bộ sưu tập ; . _id được lập chỉ mục tự động. Tra cứu chỉ định { _id.