Rate this post

Sau đây là các phương thức thu thập MongoDB được sử dụng trong các trường hợp khác nhau.

#1: db.collection.aggregate(pipeline, option)

Phương pháp tổng hợp tính toán các giá trị khối lượng cho dữ liệu trong một Collection / bảng hoặc trong một chế độ xem.

Các bài viết liên quan:

Pipeline: Nó là một mảng các hoạt động hoặc giai đoạn dữ liệu khối lượng lớn. Nó có thể chấp nhận đường ống như một đối số riêng biệt, không phải là một phần tử trong một mảng. Nếu đường ống không được chỉ định dưới dạng một mảng, thì tham số thứ hai sẽ không được chỉ định.

Options: Một Document chuyển lệnh tổng hợp. Nó sẽ chỉ khả dụng khi bạn chỉ định đường ống là một mảng.

FieldTypeDescription
explainbooleanTrường giải thích chỉ định để trả về thông tin về quá trình xử lý đường ống.
allowDiskUsebooleanTrường cho phép sử dụng đĩa cho phép bạn ghi vào các tệp tạm thời.
cursordocumentKích thước lô ban đầu cho con trỏ được chỉ định với trường này. Giá trị bên trong trường này là Document có trường batchSize.
maxTimeMSnon-negative integerSử dụng giới hạn thời gian cho các hoạt động xử lý trên con trỏ được chỉ định bằng cách sử dụng trường này.
bypassDocumentValidationCó thể chỉ định các giai đoạn tổng hợp $ out hoặc $ merge bằng cách sử dụng trường này. Nó cho phép phương pháp thu thập tổng hợp bỏ qua xác nhận Document trong quá trình hoạt động.
readConcerndocumentBạn có thể chỉ định mức độ quan tâm của việc đọc bằng cách sử dụng trường này.
collationdocumentTrường đối chiếu xác định các quy tắc ngôn ngữ cụ thể để so sánh chuỗi.

Ví dụ

Các ví dụ sử dụng thư viện Collection chứa các Document sau:

{ _id: 1, book_id: "Java", ord_date: ISODate("2012-11-02T17:04:11.102Z"), status: "A", amount: 50 }  
{ _id: 0, book_id: "MongoDB", ord_date: ISODate("2013-10-01T17:04:11.102Z"), status: "A", amount: 100 }  
{ _id: 0.01, book_id: "DBMS", ord_date: ISODate("2013-10-12T17:04:11.102Z"), status: "D", amount: 25 }  
{ _id: 2, book_id: "Python", ord_date: ISODate("2013-10-11T17:04:11.102Z"), status: "D", amount: 125 }  
{ _id: 0.02, book_id: "SQL", ord_date: ISODate("2013-11-12T17:04:11.102Z"), status: "A", amount: 25 }  

Tính tổng

db.library.aggregate([  
                     { $match: { status: "A" } },  
                     { $group: { _id: "$book_id", total: { $count: "$amount" } } },  
                     { $sort: { total: -1 } }  
                   ])  

Chỉ định đối chiếu

db.library.aggregate(  
   [ { $match: { status: "A" } }, { $group: { _id: "$ord_date", count: { $count: 1 } } } ],  
   { library: { locale: "fr", strength: 1 } } );  

# 2 db.collection.bulkWrite ()

Phương thức BulWrite () thực hiện nhiều thao tác ghi với thứ tự điều khiển thực thi. Hoạt động ghi mảng được thực hiện bởi thao tác này. Các hoạt động được thực hiện theo một thứ tự cụ thể theo mặc định.

Cú pháp:

db.collection.bulkWrite(  
   [ <op. 1>, <op. 2>, .. ],  
   {  
      writeConcern : <document>,  
      ordered: <boolean>  
   }  
)  

Phương pháp thu thập trình bao MongoDB

Thực hiện các toán tử

insertOne: Nó chỉ chèn một Document vào Collection.

db.collection.bulkWrite( [  
   { insertOne : { "document" : <document> } }  
] )  

Phương pháp thu thập trình bao MongoDB

Update one: Nó chỉ cập nhật một Document phù hợp với bộ lọc trong Collection.

db.collection.bulkWrite( [  
   { updateOne :  
      {  
         "filter": <document>,  
         "update": <document or pipeline>,  
         "upsert": <boolean>,  
         "collation": <document>,  
         "arrayFilters": [ <filterdocument1>, ... ],  
         "hint": <document|string>  
      }  
   }  
] )  

Update Nhiều: Nó cập nhật tất cả các Document phù hợp với bộ lọc trong Collection.

db.collection.bulkWrite( [  
   { updateMany :{  
         "filter" : <doc.>,  
         "update" : <document or pipeline>,            
         "upsert" : <Boolean>,  
         "collation": <document>,             
         "arrayFilters": [ <filterdocument1>, ... ],   
         "hint": <document|string>                   // Available starting in 4.2.1  
      }  
   }  
] )  

ReplaceOne: Nó thay thế một Document duy nhất trong Collection phù hợp với bộ lọc.

db.collection.bulkWrite([  
{ replaceOne :  
 {  
    "filter" : <doc.>,  
     "replacement" : <doc.>,  
     "upsert" : <boolean>,  
     "collation": <document>,  
     "hint": <document|string>  
   }  
 }  
] )  

# 3. db.collection.count(query, option)

Phương thức count () trả về số lượng Document phù hợp với truy vấn phương thức tìm cho Collection hoặc chế độ xem.

Ví dụ:

Chúng tôi sẽ đếm tất cả Document trong Collection testDB bằng thao tác sau:

db.testDB.count ()

Bây giờ, chúng tôi sẽ đếm tất cả các Document Khớp một Truy vấn trong Collection testDB với trường tut_dt lớn hơn new Date (’01 / 01/2015 ‘)

db.testDB.count( { tut_dt: { $gt: new Date('01/01/2015') } } )  

#4. Db.collection.countDocuments(query, options)

Phương thức countDocument () trả về số lượng Document phù hợp với truy vấn cho một Collection hoặc chế độ xem. nó không sử dụng siêu dữ liệu để trả về số lượng.

Cú pháp:

db.collection.countDocuments (<truy vấn>, <tùy chọn>)

Ví dụ:

Ví dụ dưới đây sẽ đếm số lượng tất cả các Document trong Collection testDB.

db.testDB.countDocuments ({})

Bây giờ, chúng tôi sẽ đếm tất cả các Document Khớp một Truy vấn trong Collection testDB với trường tut_dt lớn hơn new Date (’01 / 01/2015 ‘)

db.testDB.countDocuments ({tut_dt: {$ gt: new Date ('01 / 01/2015 ')}})

# 5. db.collection.estimatedDocumentCount ()

Phương thức ước tínhdocumentCount () đếm tất cả Document trong một Collection hoặc chế độ xem. Phương thức này kết thúc lệnh đếm.

Cú pháp:

db.collection.estimatedDocumentCount (<tùy chọn>)

Ví dụ

Ví dụ sau sẽ truy xuất số lượng tất cả các Document trong Collection testDB:

db.testDB.estimatedDocumentCount ({})

# 6. db.collection.createIndex ()

Nó có thể tạo các chỉ mục trên các Collection

Cú pháp:

db.collection.createIndex (khóa, tùy chọn)

Phím: Đối với chỉ mục tăng dần trên một trường, chúng ta cần chỉ định giá trị là 1 và đối với chỉ mục giảm dần, chúng ta cần chỉ định giá trị là -1.

Ví dụ

Ví dụ dưới đây tạo một chỉ mục tăng dần trên trường tut_Date.

db.collection.createIndex ({tut_Date: 1})

Ví dụ sau đây cho thấy một chỉ mục kết hợp được tạo trên trường tut_Date và trường tut_code.

db.collection.createIndex ({tut_Date: 1, tut_code: -1})

Ví dụ dưới đây sẽ tạo một chỉ mục có tên là category_tutorial. Ví dụ này tạo chỉ mục với đối chiếu chỉ định fr ngôn ngữ và độ mạnh so sánh.

db.collection.createIndex(  
   { category: 1 },  
   { name: "category_tutorial", collation: { locale: "fr", strength: 2 } }  
)  

# 7. db.collection.createIndexes ()

Phương thức createIndexes () tạo một hoặc nhiều chỉ mục trên một tập hợp.

Cú pháp:

db.collection.createIndexes (tùy chọn [keyPatterns,])

Keypatterns: Nó là một mảng chứa các Document chỉ mục cụ thể. Tất cả Document đều có các cặp giá trị trường. Đối với chỉ mục tăng dần trên một trường, chúng ta cần chỉ định giá trị 1 và đối với chỉ mục giảm dần, chúng ta cần chỉ định giá trị -1

Ví dụ

Trong ví dụ dưới đây, chúng tôi đã xem xét một tập hợp nhân viên chứa các Document giống như sau:

{  
   location: {  
      type: "Point",  
      coordinates: [-73.8577, 40.8447]  
   },  
   name: "Employee",  
   company: "Amazon",  
   borough: "CA",  
}  

Bây giờ, ví dụ dưới đây tạo hai chỉ mục trên Collection sản phẩm:

  • Chỉ mục trên trường nhà sản xuất theo thứ tự tăng dần.
  • Chỉ mục trên trường danh mục theo thứ tự tăng dần.

Các chỉ mục trên sử dụng một đối chiếu chỉ định fr cơ bản và cường độ so sánh là 2.

db.products.createIndexes( [ { "manufacturer": 1}, { "category": 1 } ],  
   { collation: { locale: "fr", strength: 2 } })  

#số 8. db.collection.dataSize ()

Phương thức kích thước dữ liệu có một lớp phủ xung quanh đầu ra của lệnh collStats (tức là db.collection.stats ()).

# 9. db.collection.deleteOne ()

Phương thức deleteOne () xóa một Document khỏi Collection. Nó thay thế Document đầu tiên tương tự như bộ lọc. Bạn cần sử dụng một trường liên quan đến một chỉ mục duy nhất, chẳng hạn như id để xóa hoàn hảo.

Cú pháp:

db.collection.deleteOne(  
   <filter>,  
   {  
      writeConcern: <document>,  
      collation: <document>  
   }  
)  

Ví dụ

Collection đơn đặt hàng có các Document với cấu trúc sau:

{  
   _id: objectId("563237a41a4d6859da"),  
   book: "",  
   qty: 2,  
   type: "buy-limit",  
   limit: 10,  
   creationts: ISODate("2015-11-01T2:30:15Z"),  
   expiryts: ISODate("2015-11-01T2:35:15Z"),  
   client: "testDB"  
}  

Thao tác sau sẽ xóa thứ tự với _id: objectId (“563237a41a4d6858 2da”):

try {  
   db.orders.deleteOne( { "_id" : objectId("563237a41a4d68582da") } );  
} catch (e) {  
   print(e);  
}  

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now