Hướng dẫn update one mongodb - cập nhật một mongodb
Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual Show
Sử dụng menu chọn ngôn ngữ của bạn ở phía trên bên phải để đặt ngôn ngữ của các ví dụ sau.Select your language drop-down menu in the upper-right to set the language of the following examples. Ghi chúBắt đầu từ MongoDB 4.2, MongoDB có thể chấp nhận một đường ống tổng hợp để chỉ định các sửa đổi để thực hiện thay vì tài liệu cập nhật. Xem trang tham chiếu phương thức để biết chi tiết. Tất cả các hoạt động viết trong MongoDB đều là nguyên tử ở cấp độ của một tài liệu. Để biết thêm thông tin về MongoDB và tính nguyên tử, hãy xem tính nguyên tử và giao dịch. Sau khi được đặt, bạn không thể cập nhật giá trị của trường 0 và bạn cũng không thể thay thế một tài liệu hiện có bằng một tài liệu thay thế có giá trị trường 0 khác nhau.Đối với các hoạt động ghi, MongoDB bảo tồn thứ tự của các trường tài liệu ngoại trừ các trường hợp sau:
Với các mối quan tâm ghi, bạn có thể chỉ định mức độ xác nhận được yêu cầu từ MongoDB cho các hoạt động viết. Để biết chi tiết, xem Viết mối quan tâm. Tài liệu về nhà → Hướng dẫn sử dụng MongoDB → MongoDB Manual 4
Quan trọngPhương pháp MongoshTrang này ghi lại một phương thức 5. Đây không phải là tài liệu cho trình điều khiển dành riêng cho ngôn ngữ, chẳng hạn như Node.js. 5 method. This is not the documentation for a language-specific driver, such as Node.js.Đối với trình điều khiển API MongoDB, hãy tham khảo tài liệu trình điều khiển MongoDB dành riêng cho ngôn ngữ.MongoDB driver documentation. Cập nhật một tài liệu duy nhất trong bộ sưu tập dựa trên bộ lọc. Phương thức 6 có cú pháp sau: 6 method has the following syntax:
Phương thức 7 lấy các tham số sau: 7 method takes the following parameters:
Bạn có thể bao gồm cùng một định danh nhiều lần trong tài liệu cập nhật; Tuy nhiên, đối với mỗi định danh riêng biệt ( 1) trong tài liệu cập nhật, bạn phải chỉ định chính xác một tài liệu bộ lọc mảng tương ứng. Đó là, bạn không thể chỉ định nhiều tài liệu bộ lọc mảng cho cùng một định danh. Ví dụ: nếu câu lệnh Update bao gồm Mã định danh 2 (có thể nhiều lần), bạn không thể chỉ định các mục sau cho 8 bao gồm 2 tài liệu bộ lọc riêng biệt cho 2:exactly one corresponding array filter document. That is, you cannot specify multiple array filter documents for the same identifier. For example, if the update statement includes the identifier 2 (possibly multiple times), you cannot specify the following for 8 that
includes 2 separate filter documents for 2:
Tuy nhiên, bạn có thể chỉ định các điều kiện hợp chất trên cùng một định danh trong một tài liệu bộ lọc duy nhất, chẳng hạn như trong các ví dụ sau:
Để biết ví dụ, xem Chỉ định 8 để biết các hoạt động cập nhật mảng.Specify 8 for an Array Update Operations.
dấu Tài liệu hoặc chuỗi Không bắt buộc. Một tài liệu hoặc chuỗi chỉ định chỉ mục để sử dụng để hỗ trợ vị từ truy vấn.query predicate. Tùy chọn có thể lấy một tài liệu đặc tả chỉ mục hoặc chuỗi tên chỉ mục. Nếu bạn chỉ định một chỉ mục không tồn tại, các lỗi hoạt động. Ví dụ, xem Chỉ định 6 cho các hoạt động cập nhật.Specify 6 for Update Operations.Mới trong phiên bản 4.2.1. Phương thức trả về một tài liệu chứa:
Để xem các chỉ mục được sử dụng, bạn có thể sử dụng đường ống 41:
5 Hành động trên (các) bộ sưu tập được chỉ định.
Đối với thông số kỹ thuật cập nhật, phương thức 7 có thể chấp nhận một tài liệu chỉ chứa các biểu thức toán tử cập nhật.update specifications, the 7 method can accept a document that only contains
update operator expressions.Ví dụ:
Bắt đầu từ MongoDB 4.2, phương pháp 7 có thể chấp nhận đường ống tổng hợp 2 chỉ định các sửa đổi để thực hiện. Đường ống có thể bao gồm các giai đoạn sau: 7 method can accept an
aggregation pipeline 2 that specifies the modifications to perform. The pipeline can consist of the following stages:
Sử dụng đường ống tổng hợp cho phép một câu lệnh cập nhật biểu cảm hơn, chẳng hạn như biểu thị các bản cập nhật có điều kiện dựa trên các giá trị trường hiện tại hoặc cập nhật một trường bằng cách sử dụng giá trị của (các) trường khác. Ví dụ:
Ghi chúNếu bạn chỉ định một chỉ mục không tồn tại, các lỗi hoạt động. Lệnh cập nhật trả về như sau:Update with Aggregation Pipeline. Để xem các chỉ mục được sử dụng, bạn có thể sử dụng đường ống 41: 7 creates a new document based on the 0 criteria and 5 modifications. See
Update with Upsert.Mẹofilter. For additional
Xem thêm: 7 Tìm tài liệu đầu tiên phù hợp với bộ lọc và áp dụng các sửa đổi cập nhật được chỉ định. 7 on a sharded collection:
Bắt đầu từ MongoDB 4.2, phương pháp 7 có thể chấp nhận đường ống tổng hợp 2 chỉ định các sửa đổi để thực hiện. Đường ống có thể bao gồm các giai đoạn sau:in conjunction with another filter condition (such as on the 0 field). For example:
0 và bí danh của nó 1db.collection.updateOne( |
db.collection.updateOne( |
|
[ |
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, |
{ $unset: [ "misc1", "misc2" ] } |
] |
... |
) |
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
5Sử dụng đường ống tổng hợp cho phép một câu lệnh cập nhật biểu cảm hơn, chẳng hạn như biểu thị các bản cập nhật có điều kiện dựa trên các giá trị trường hiện tại hoặc cập nhật một trường bằng cách sử dụng giá trị của (các) trường khác.existing shard key value with
7db.collection.updateOne( { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
1 vàdb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3 được sử dụng trong đường ống liên quan đến các giai đoạn tổng hợp lần lượtmust run on adb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
20. Do not issue the operation directly on the shard.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: } Để biết ví dụ, xem cập nhật với đường ống tổng hợp.must run either in a transaction or as a retryable write.
Bạn phải bao gồm một bộ lọc bình đẳng trên phím Shard đầy đủ.must include an equality filter on the full shard key.
Xem thêm
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
7 trên một bộ sưu tập Sharded.db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
7 on a Sharded Collection.Bắt đầu từ phiên bản 4.4, các tài liệu trong bộ sưu tập Sharded có thể bị thiếu các trường Key Shard. Để sử dụng
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 để đặt khóa Shard bị thiếu của tài liệu, bạn phải chạy trên collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
20. Không phát hành hoạt động trực tiếp trên Shard.db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 to set the document's missing shard key, you must run on a collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
20. Do not issue the operation directly on the shard.Ngoài ra, các yêu cầu sau đây cũng được áp dụng:
Nhiệm vụ | Yêu cầu | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Để đặt thành |
| ||||||||||||||||||||
Để đặt thành giá trị không |
|
Mẹo
Vì một giá trị khóa bị thiếu được trả về như là một phần của khớp bình đẳng null, để tránh cập nhật khóa có giá trị null, bao gồm các điều kiện truy vấn bổ sung (như trên trường
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
0) nếu phù hợp.Xem thêm:
7 trên bộ sưu tập Shardeddb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... ) Thiếu các trường Key Shard
6 không tương thích với db.collection.updateOne( { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
31 is not compatible with
collation: { locale: caseLevel: caseFirst: strength: numericOrdering: alternate: maxVariable: backwards: }
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
31
7 có thể được sử dụng bên trong các giao dịch đa tài liệu. can be used inside multi-document transactions.db.collection.updateOne( { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
Quan trọng
Trong hầu hết các trường hợp, giao dịch đa tài liệu phát sinh chi phí hiệu suất lớn hơn so với ghi tài liệu đơn lẻ và sự sẵn có của các giao dịch đa tài liệu không nên là một sự thay thế cho thiết kế lược đồ hiệu quả. Đối với nhiều kịch bản, mô hình dữ liệu được chuẩn hóa (tài liệu và mảng nhúng) sẽ tiếp tục tối ưu cho các trường hợp dữ liệu và sử dụng của bạn. Đó là, đối với nhiều kịch bản, mô hình hóa dữ liệu của bạn một cách thích hợp sẽ giảm thiểu nhu cầu cho các giao dịch đa tài liệu.
Để biết các cân nhắc sử dụng giao dịch bổ sung (như giới hạn thời gian chạy và giới hạn kích thước oplog), xem thêm các cân nhắc sản xuất.
Bắt đầu từ MongoDB 4.4, bạn có thể tạo các bộ sưu tập và chỉ mục bên trong giao dịch đa tài liệu nếu giao dịch không phải là giao dịch ghi chéo.not a cross-shard write transaction.
Cụ thể, trong MongoDB 4.4 trở lên,
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 với collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
05 có thể được chạy trên một bộ sưu tập hiện có hoặc một bộ sưu tập không tồn tại. Nếu chạy trên một bộ sưu tập không tồn tại, thao tác sẽ tạo ra bộ sưu tập.db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 with collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
05 can be run on an existing collection or a
non-existing collection. If run on a non-existing collection, the operation creates the collection.Trong MongoDB 4.2 và trước đó, hoạt động phải được chạy trên một bộ sưu tập hiện có.
Mẹo
Vì một giá trị khóa bị thiếu được trả về như là một phần của khớp bình đẳng null, để tránh cập nhật khóa có giá trị null, bao gồm các điều kiện truy vấn bổ sung (như trên trường db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)0) nếu phù hợp.
Xem thêm:
Bộ sưu tập
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
35 chứa các tài liệu sau:{ "_id" : 1, "name" : "Central Perk Cafe", "Borough" : "Manhattan" }, { "_id" : 2, "name" : "Rock A Feller Bar and Grill", "Borough" : "Queens", "violations" : 2 }, { "_id" : 3, "name" : "Empire State Pub", "Borough" : "Brooklyn", "violations" : 0 }
Hoạt động sau đây cập nhật một tài liệu duy nhất trong đó
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
36 với trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
37:try { db.restaurant.updateOne( { "name" : "Central Perk Cafe" }, { $set: { "violations" : 3 } } ); } catch (e) { print(e); }
Hoạt động trả về:
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
Nếu không tìm thấy trận đấu nào, hoạt động thay vì trả về:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
0Cài đặt
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
05 sẽ chèn tài liệu nếu không tìm thấy khớp. Xem Cập nhật với UPSERTUpdate with UpsertBắt đầu từ MongoDB 4.2,
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 có thể sử dụng đường ống tổng hợp để cập nhật. Đường ống có thể bao gồm các giai đoạn sau:db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 can use an aggregation pipeline for the update. The pipeline can consist of the following stages:
0 và bí danh của nódb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
2 và bí danh của nódb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
4 và bí danh của nódb.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
5db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
Sử dụng đường ống tổng hợp cho phép một câu lệnh cập nhật biểu cảm hơn, chẳng hạn như biểu thị các bản cập nhật có điều kiện dựa trên các giá trị trường hiện tại hoặc cập nhật một trường bằng cách sử dụng giá trị của (các) trường khác.
Các ví dụ sau sử dụng đường ống tổng hợp để sửa đổi một trường bằng cách sử dụng các giá trị của các trường khác trong tài liệu.
Tạo bộ sưu tập
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
46 với các tài liệu sau:collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
1Giả sử rằng thay vì các trường
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
47 và collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48 riêng biệt trong tài liệu đầu tiên, bạn muốn thu thập chúng thành một trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
49, như tài liệu thứ hai. Hoạt động cập nhật sau đây sử dụng đường ống tổng hợp để:
Thêm trường
49 mới và đặt trườngcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
51.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: } Xóa các trường
47 vàcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48 cho tất cả các tài liệu trong bộ sưu tập.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
2Ghi chú
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1 và db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3 được sử dụng trong đường ống liên quan đến các giai đoạn tổng hợp lần lượtGiai đoạn đầu tiênGiai đoạn
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1:Tạo một trường mảng mới
49 có các phần tử là nội dung hiện tại của các trườngcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
47 vàcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48 vàcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: } Đặt trường
51 thành giá trị của biến tổng hợpcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
65. Biến tổng hợpcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
65 giải quyết được giá trị DateTime hiện tại và vẫn giữ nguyên trong suốt quá trình đường ống. Để truy cập các biến tổng hợp, tiền tố biến với các dấu hiệu đô la képcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
67 và kèm theo trích dẫn.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3 loại bỏ các trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
47 và collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48.Sau lệnh, bộ sưu tập chứa các tài liệu sau:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
3Đường ống tổng hợp cho phép bản cập nhật thực hiện các bản cập nhật có điều kiện dựa trên các giá trị trường hiện tại cũng như sử dụng các giá trị trường hiện tại để tính toán giá trị trường riêng biệt.
Ví dụ: tạo bộ sưu tập
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
71 với các tài liệu sau:collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
4Tài liệu thứ ba
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
72 bị thiếu các trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
73 và collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
74. Sử dụng một đường ống tổng hợp, bạn có thể cập nhật tài liệu với mức trung bình và lớp chữ cái được tính toán.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
5Ghi chú
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1 và db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3 được sử dụng trong đường ống liên quan đến các giai đoạn tổng hợp lần lượtGiai đoạn đầu tiênGiai đoạn
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1:Tạo một trường mảng mới
49 có các phần tử là nội dung hiện tại của các trườngcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
47 vàcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48 vàcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: } Đặt trường
51 thành giá trị của biến tổng hợpcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
65. Biến tổng hợpcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
65 giải quyết được giá trị DateTime hiện tại và vẫn giữ nguyên trong suốt quá trình đường ống. Để truy cập các biến tổng hợp, tiền tố biến với các dấu hiệu đô la képcollation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
67 và kèm theo trích dẫn.collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
3 loại bỏ các trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
47 và collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
48.Sau lệnh, bộ sưu tập chứa các tài liệu sau:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
6Mẹo
Xem thêm:
Bộ sưu tập
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
35 chứa các tài liệu sau:Hoạt động sau đây cập nhật một tài liệu duy nhất trong đó
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
36 với trường collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
37:Hoạt động trả về:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
8Nếu không tìm thấy trận đấu nào, hoạt động thay vì trả về:
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
9Cài đặt
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
05 sẽ chèn tài liệu nếu không tìm thấy khớp. Xem Cập nhật với UPSERT// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
0Bắt đầu từ MongoDB 4.2,
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 có thể sử dụng đường ống tổng hợp để cập nhật. Đường ống có thể bao gồm các giai đoạn sau:db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
0 và bí danh của nó db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
1// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
1Hoạt động trả về:
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
2Cài đặt
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
05 sẽ chèn tài liệu nếu không tìm thấy khớp. Xem Cập nhật với UPSERT// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
3Vì không có tài liệu nào khớp với bộ lọc và
db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
7 là db.collection.updateOne( , [ { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } }, { $unset: [ "misc1", "misc2" ] } ] ... )
8, db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
6 đã chèn tài liệu với một tiêu chí db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
0 được tạo và chỉ.db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
6 inserted the document with a generated
db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
0 and the try { db.restaurant.updateOne( { "name" : "Central Perk Cafe" }, { $set: { "violations" : 3 } } ); } catch (e) { print(e); }
5 criteria only.Đưa ra một bộ bản sao ba thành viên, thao tác sau đây chỉ định
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
11 của // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
12, // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
13 của // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
14:// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
4Nếu chính và ít nhất một thứ cấp xác nhận mỗi hoạt động ghi trong vòng 100 mili giây, nó sẽ trả về:
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
Nếu sự thừa nhận mất nhiều thời gian hơn giới hạn
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
13, thì ngoại lệ sau được ném:Thay đổi trong phiên bản 4.4.
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
6Bảng sau đây giải thích các giá trị có thể của
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
16:
Nguồn gốc | Sự mô tả | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mối quan tâm ghi được chỉ định trong ứng dụng. | ||||||||||||
| Mối quan tâm ghi có nguồn gốc từ một giá trị mặc định được xác định tùy chỉnh. Xem | ||||||||||||
| Mối quan tâm ghi có nguồn gốc từ trường | ||||||||||||
| Mối quan tâm ghi có nguồn gốc từ máy chủ không có tất cả các thông số kỹ thuật viết khác. |
Đối chiếu cho phép người dùng chỉ định các quy tắc cụ thể về ngôn ngữ để so sánh chuỗi, chẳng hạn như các quy tắc cho Lettercase và Dấu nhấn.
Bộ sưu tập
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
23 có các tài liệu sau:// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
7Hoạt động sau bao gồm tùy chọn đối chiếu:
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
8Bắt đầu trong MongoDB 3.6, khi cập nhật trường mảng, bạn có thể chỉ định
{ _id: , : null } // _id of the document missing shard key
8 xác định các phần tử mảng nào để cập nhật.Tạo bộ sưu tập
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
25 với các tài liệu sau:// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
9Để sửa đổi tất cả các yếu tố lớn hơn hoặc bằng
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
14 trong mảng // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
27, hãy sử dụng toán tử vị trí được lọc { _id: , : null } // _id of the document missing shard key
9 với tùy chọn { _id: , : null } // _id of the document missing shard key
8 trong phương thức db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7:db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 method:// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
0Hoạt động cập nhật trường
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
27 của một tài liệu và sau khi hoạt động, bộ sưu tập có các tài liệu sau:// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
1Tạo bộ sưu tập
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
32 với các tài liệu sau:// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
2Để sửa đổi giá trị của trường
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
33 cho tất cả các phần tử trong mảng // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
27 trong đó cấp lớn hơn hoặc bằng // INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
35, hãy sử dụng toán tử vị trí được lọc { _id: , : null } // _id of the document missing shard key
9 với { _id: , : null } // _id of the document missing shard key
8 trong phương thức db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7:db.collection.updateOne( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ... )
7 method:// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
3Hoạt động cập nhật mảng của một tài liệu duy nhất và sau khi hoạt động, bộ sưu tập có các tài liệu sau:
// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
4Mới trong phiên bản 4.2.1.
Tạo bộ sưu tập mẫu
collation: { locale: , caseLevel: , caseFirst: , strength: , numericOrdering: , alternate: , maxVariable: , backwards: }
46 với các tài liệu sau:
// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
5Tạo các chỉ mục sau trên bộ sưu tập:
// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
6Hoạt động cập nhật sau đây gợi ý rõ ràng để sử dụng chỉ mục
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
40:Ghi chú
Nếu bạn chỉ định một chỉ mục không tồn tại, các lỗi hoạt động.
// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
7Lệnh cập nhật trả về như sau:
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
Để xem các chỉ mục được sử dụng, bạn có thể sử dụng đường ống
// INVALID [ { "x.a": { $gt: 85 } }, { "x.b": { $gt: 80 } } ]
41:// Example 1 [ { $or: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 2 [ { $and: [{"x.a": {$gt: 85}}, {"x.b": {$gt: 80}}] } ] // Example 3 [ { "x.a": { $gt: 85 }, "x.b": { $gt: 80 } } ]
9