Computer >> Máy Tính >  >> Lập trình >> MongoDB

Tự động tăng trong MongoDB để lưu trữ chuỗi ID người dùng duy nhất?

Để tự động tăng trong MongoDB nhằm lưu trữ một chuỗi id người dùng duy nhất, hãy tạo một bộ sưu tập chứa thông tin về các giá trị chuỗi cuối cùng của tất cả các tài liệu.

Đầu tiên chúng ta hãy tạo một bộ sưu tập. Truy vấn để tạo một bộ sưu tập như sau -

> db.createSequenceDemo.insertOne({_id:"SID",S_Value:0});
{ "acknowledged" : true, "insertedId" : "SID" }

Bây giờ, chúng ta sẽ tạo một hàm sẽ tạo ra một số tự động trong MongoDB để lưu trữ chuỗi. Truy vấn như sau -

> function nextSequence(s) {
   ... var sd = db.createSequenceDemo.findAndModify({
      ... query:{_id: s },
      ... update: {$inc:{S_Value:1}},
      ... new:true
   ... });
   ... return sd.S_Value;
... }

Hãy để chúng tôi tạo một bộ sưu tập với một số tài liệu và gọi hàm trên để tạo một chuỗi id người dùng duy nhất.

Truy vấn để tạo một bộ sưu tập với một tài liệu như sau -

> db.checkSequenceDemo.insertOne({"StudentId":nextSequence("SID"),"StudentName":"Larry","StudentMathMarks":78});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f61008d10a061296a3c40")
}
> db.checkSequenceDemo.insertOne({"StudentId":nextSequence("SID"),"StudentName":"Mike","StudentMathMarks":89});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f61118d10a061296a3c41")
}
> db.checkSequenceDemo.insertOne({"StudentId":nextSequence("SID"),"StudentName":"Sam","StudentMathMarks":67});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c7f611d8d10a061296a3c42")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find (). Truy vấn như sau -

> db.checkSequenceDemo.find().pretty();

Sau đây là kết quả -

{
   "_id" : ObjectId("5c7f61008d10a061296a3c40"),
   "StudentId" : 1,
   "StudentName" : "Larry",
   "StudentMathMarks" : 78
}
{
   "_id" : ObjectId("5c7f61118d10a061296a3c41"),
   "StudentId" : 2,
   "StudentName" : "Mike",
   "StudentMathMarks" : 89
}
{
   "_id" : ObjectId("5c7f611d8d10a061296a3c42"),
   "StudentId" : 3,
   "StudentName" : "Sam",
   "StudentMathMarks" : 67
}

Nhìn vào trường “StudentId” được tự động tăng thêm 1