Rate this post

Các công cụ sửa đổi sau đây có sẵn để cập nhật các hoạt động. Ví dụ – trong db.collection.update () và db.collection.findAndModify ().

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

Xác định biểu thức toán tử trong tài liệu của biểu mẫu:

{  
   <operator1>: { <field1>: <value1>, ... },  
   <operator2>: { <field2>: <value2>, ... },  
}  

Field Operator

  1. $ currentDate

Nó cập nhật các phần tử của một trường thành ngày hiện tại, dưới dạng Ngày hoặc dấu thời gian. Kiểu dữ liệu mặc định của toán tử này là ngày.

Cú pháp:

{ $currentDate: { <field1>: <typeSpecification1>, ... } }  

Ví dụ:

db.books.insertOne(  
   { _id: 1, status: "a", lastModified: purchaseDate("2013-10-02T01:11:18.965Z") }  
)  
  1. $ inc

Nó làm tăng một hồ sơ theo giá trị được chỉ định.

Cú pháp:

{ $inc: { <field1>: <amount1>, <field2>: <amount2>, ... } }  

Ví dụ:

{  
  _id: 000438,  
  sku: "MongoDB",  
  quantity: 1,  
  metrics: {  
    orders: 2,  
    ratings: 3.5  
  }  
}  
  1. $ min

Nó thay đổi giá trị của trường thành một giá trị được chỉ định nếu giá trị được chỉ định nhỏ hơn giá trị hiện tại của tệp.

Cú pháp:

{ $min: { <field1>: <value1>, ... } }  

Ví dụ:

{ _id: 0021, highprice: 800, lowprice: 200 }  
db.books.update( { _id: 0021 }, { $min: { highprice: 500 } } )  
  1. $ max

Nó thay đổi giá trị của trường thành một giá trị được chỉ định nếu giá trị được chỉ định lớn hơn giá trị hiện tại của tệp.

Cú pháp:

{$ max: {<field1>: <value1>, ...}}

Ví dụ:

{ _id: 0021, highprice: 800, lowprice: 200 }  
db.books.update( { _id: 0021 }, { $max: { highprice: 950 } } )  
  1. $ mul

Nó nhân giá trị của một trường với một số.

Cú pháp:

{$ mul: {<field1>: <number1>, ...}}

Ví dụ:

db.books.update(  
   { _id: 1 },  
   { $mul: { price: NumberDecimal("180.25"), qty: 2 } }  
)  
  1. $ rename

Toán tử đổi tên thay đổi tên của một trường.

Cú pháp:

{$ rename: {<field1>: <newName1>, <field2>: <newName2>, ...}}

Ví dụ:

db.books.updateMany( {}, { $rename: { "nmae": "name" } } )  
  1. $ set

Toán tử tập hợp thay đổi giá trị của một trường với giá trị được chỉ định.

Cú pháp:

{$ set: {<field1>: <value1>, ...}}

Ví dụ:

{  
_id: 100,  
sku: "abc123",  
quantity: 50,  
instock: true,  
reorder: false,  
details: { model: "14Q2", make: "xyz" },  
tags: [ "technical", "non technical" ],  
ratings: [ { by: "ijk", rating: 4 } ]  
}
  1. $ setOnInsert

Nếu upsert được đặt thành true, thì nó dẫn đến việc chèn một tài liệu, sau đó toán tử setOnInsert sẽ gán các giá trị được chỉ định cho trường trong tài liệu.

Cú pháp:

 db.collection.update(  
   <query>,  
   { $setOnInsert: { <field1>: <value1>, ... } },  
   { upsert: true }  
)  
  1. $ unset

Nó loại bỏ một trường được chỉ định.

Cú pháp:

{$ unset: {<field1>: "", ...}}

Ví dụ:

db.products.update(  
{ sku: "unknown" },  
{ $unset: { quantity: "", instock: "" } }  

Array Operators

  1. $

Chúng ta có thể cập nhật một phần tử trong một mảng mà không cần chỉ định rõ ràng vị trí của phần tử.

Cú pháp:

{"<array>. $": value}

Ví dụ:

db.collection.update(  
{ <array>: value ... },  
{ <update operator>: { "<array>.$" : value } } 
  1. $ []

Toán tử vị trí chỉ ra rằng toán tử cập nhật nên thay đổi tất cả các phần tử trong trường mảng đã cho.

Cú pháp:

{ <update operator>: { "<array>.$[]" : value } }  

Ví dụ:

db.collection.updateMany(  
{ <query conditions> },  
{ <update operator>: { "<array>.$[]" : value } }  
  1. $ [<identifier>]

Nó được gọi là một toán tử vị trí được lọc để xác định các phần tử của mảng.

Cú pháp:

{ <update operator>: { "<array>.$[<identifier>]" : value } },  
{ arrayFilters: [ { <identifier>: <condition> } ] }  

Ví dụ:

db.collection.updateMany( { <query conditions> },  
{ <update operator>: { "<array>.$[<identifier>]" : value } },  
{ arrayFilters: [ { <identifier>: <condition> } ] } )  
  1. $ addToSet

Nó thêm một phần tử vào một mảng trừ khi phần tử đó đã có mặt, trong trường hợp đó, toán tử này không làm gì với mảng đó.

Cú pháp:

{$ addToSet: {<field1>: <value1>, ...}}

Ví dụ:

db.books.update(  
{ _id: 1 },  
{ $addToSet: { tags: "MongoDB" } }  
  1. $ pop

Chúng ta có thể xóa phần tử đầu tiên hoặc cuối cùng của mảng bằng toán tử pop. Chúng ta cần truyền giá trị của pop là -1 để loại bỏ phần tử đầu tiên của một mảng và 1 để loại bỏ phần tử cuối cùng trong một mảng.

Cú pháp:

{$ pop: {<field>: <-1 | 1>, ...}}

Ví dụ:

db.books.update( { _id: 1 }, { $pop: { mongoDB: -1 } } )  
  1. $ pull

Sử dụng toán tử kéo, chúng ta có thể loại bỏ tất cả các trường hợp của một giá trị trong một mảng phù hợp với điều kiện đã chỉ định.

Cú pháp:

{$ pull: {<field1>: <value | condition>, <field2>: <value | condition>, ...}}

Ví dụ:

db.books.update( { }, { $pull: { Development: { $in:["Java", "RDBMS" ] }, Tech: "Cybersecurity" } },  
    { multi: true }  
)
  1. $ push

Nó nối một giá trị được chỉ định vào một mảng.

Cú pháp:

{$ push: {<field1>: <value1>, ...}}

Ví dụ:

db.students.update ({_id: 9}, {$ push: {Score: 91}})
  1. $ pullAll

Chúng tôi có thể xóa tất cả các phiên bản của thông số kỹ thuật giá trị từ một mảng hiện có bằng toán tử pullAll. Nó loại bỏ các phần tử phù hợp với giá trị được liệt kê.

Cú pháp:

{$ pullAll: {<field1>: [<value1>, <value2> ...], ...}}

Ví dụ:

db.survey.update ({_id: 1}, {$ pullAll: {Score: [0, 5]}})

Modifiers

  1. $ each

Nó được sử dụng với toán tử $ addToSet và toán tử $ push. Nó được sử dụng với toán tử addToSet để thêm nhiều giá trị vào một mảng nếu giá trị đó không tồn tại trong trường.

Cú pháp:

{$ addToSet: {<field>: {$ each: [<value1>, <value2> ...]}}}

Nó được sử dụng với toán tử đẩy để nối nhiều giá trị vào một mảng.

Cú pháp:

{ $push: { <field>: { $each: [ <value1>, <value2> ... ] } } }  

Ví dụ:

db.students.update( { name: "Akki" }, { $push: { scores: { $each: [ 90, 92, 85 ] } } } )  
  1. $ position

Nó chỉ định vị trí nơi toán tử đẩy chèn các phần tử bên trong một mảng.

Cú pháp:

 {  
$push: {  
  <field>: {  
     $each: [ <value1>, <value2>, ... ],  
     $position: <num>  
  }  
}  

Ví dụ:

 db.students.update(  
   { _id: 1 },  
   {  
     $push: {  
        scores: {  
           $each: [ 50, 60, 70 ],  
           $position: 0  
        }  
     }  
   }  
)  
  1. $ slice

Công cụ sửa đổi này được sử dụng để giới hạn số lượng phần tử của mảng trong hoạt động đẩy.

Cú pháp:

{  
$push: {  
   <field>: {  
     $each: [ <value1>, <value2>, ... ],  
     $slice: <num>  
   }  
}  

Ví dụ:

db.students.update(  
   { _id: 1 },  
   {  
     $push: {  
       scores: {  
         $each: [ 80, 78, 86 ],  
         $slice: -5  
       }  
     }  
   }  
)  
  1. $ sort

Công cụ sửa đổi sắp xếp sắp xếp các giá trị của một mảng trong hoạt động đẩy.

Cú pháp:

  {  
$push: {  
   <field>: {  
     $each: [ <value1>, <value2>, ... ],  
     $sort: <sort specification>  
   }  
}  

Ví dụ:

db.students.update(  
   { _id: 1 },  
   {  
     $push: {  
       quizzes: {  
         $each: [ { id: 3, score: 8 }, { id: 4, score: 7 }, { id: 5, score: 6 } ],  
         $sort: { score: 1 }  
       }  
     }  
   }  
)  

Bitwise Operator

  1. $ bit

Toán tử bit cập nhật một trường bằng thao tác bitwise. Nó hỗ trợ các hoạt động bitwise AND, bitwise OR, và bitwise XOR.

Cú pháp:

{ $bit: { <field>: { <and|or|xor>: <int> } } }  

Ví dụ:

db.books.update( { _id: 1 }, { $bit: { expdata: { and: price(100) } } }  
)  

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