Hướng dẫn what is multi option in update in mongodb? - đa tùy chọn trong bản cập nhật trong mongodb là gì?

Tài liệu về nhà → Hướng dẫn sử dụng MongoDBMongoDB Manual

// 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 } }
]
6
Hướng dẫn what is multi option in update in mongodb? - đa tùy chọn trong bản cập nhật trong mongodb là gì?

Quan trọng

Phương pháp Mongosh

Trang này ghi lại một phương thức

// 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 } }
]
7. Đây không phải là tài liệu cho các lệnh cơ sở dữ liệu hoặc trình điều khiển dành riêng cho ngôn ngữ, chẳng hạn như Node.js.
// 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 } }
]
7
method. This is not the documentation for database commands or language-specific drivers, such as Node.js.

Đối với lệnh cơ sở dữ liệu, xem lệnh

// 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 } }
]
8.

Đố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.

Đối với tài liệu Shell Legacy

// 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, hãy tham khảo tài liệu để phát hành máy chủ MongoDB tương ứng:

  • Mongo Shell v4.4

  • Mongo Shell v4.2

Cập nhật tất cả các tài liệu phù hợp với bộ lọc được chỉ định cho một bộ sưu tập.

Phương thức

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 có dạng sau:
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0
method has the following form:

db.collection.updateMany(
,
,
{
upsert: ,
writeConcern: <document>,
collation: <document>,
arrayFilters: [ , ... ],
hint: // Available starting in MongoDB 4.2.1
}
)

Phương thức

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 lấy các tham số sau:
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0
method takes the following parameters:

Tham số

Loại hình

Sự mô tả

lọc

tài liệu

Các tiêu chí lựa chọn cho bản cập nhật. Các bộ chọn truy vấn tương tự như trong phương thức

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
2 có sẵn.

Chỉ định một tài liệu trống

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
3 để cập nhật tất cả các tài liệu trong bộ sưu tập.

cập nhật

tài liệu hoặc đường ống

Các sửa đổi để áp dụng. Có thể là một trong những điều sau đây:

Cập nhật tài liệu

Chỉ chứa các biểu thức toán tử cập nhật.

Để biết thêm thông tin, hãy xem Cập nhật với tài liệu biểu thức vận hành cập nhậtUpdate with an Update Operator Expressions Document

Đường ống tổng hợp (bắt đầu từ MongoDB 4.2) (Starting in MongoDB 4.2)

Chỉ chứa các giai đoạn tổng hợp sau:

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    4 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    5

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    6 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    7

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    8 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    9

Để biết thêm thông tin, hãy xem Cập nhật với một đường ống tổng hợp.Update with an Aggregation Pipeline.

Để cập nhật với một tài liệu thay thế, xem

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
0

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
1

boolean

Không bắt buộc. Khi

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
2,
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 hoặc:
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0
either:

  • Tạo một tài liệu mới nếu không có tài liệu nào khớp với

    db.collection.updateMany(
    ,
    [
    { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
    { $unset: [ "misc1", "misc2" ] }
    ]
    ...
    )
    4. Để biết thêm chi tiết, hãy xem hành vi UPSERT.

  • Cập nhật các tài liệu phù hợp với

    db.collection.updateMany(
    ,
    [
    { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
    { $unset: [ "misc1", "misc2" ] }
    ]
    ...
    )
    4.

Để tránh nhiều UPSERT, hãy đảm bảo rằng các trường

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 được lập chỉ mục duy nhất.

Mặc định là

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
7.

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
8

tài liệu

Các tiêu chí lựa chọn cho bản cập nhật. Các bộ chọn truy vấn tương tự như trong phương thức

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
2 có sẵn.

Chỉ định một tài liệu trống

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
3 để cập nhật tất cả các tài liệu trong bộ sưu tập.

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
9

tài liệu

Optional.

Các tiêu chí lựa chọn cho bản cập nhật. Các bộ chọn truy vấn tương tự như trong phương thức

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
2 có sẵn.

Chỉ định một tài liệu trống

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
3 để cập nhật tất cả các tài liệu trong bộ sưu tập.

cập nhật

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}

tài liệu hoặc đường ống

Các sửa đổi để áp dụng. Có thể là một trong những điều sau đây:

Cập nhật tài liệu

Chỉ chứa các biểu thức toán tử cập nhật.

{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2

Để biết thêm thông tin, hãy xem Cập nhật với tài liệu biểu thức vận hành cập nhật

Đường ống tổng hợp (bắt đầu từ MongoDB 4.2)

Chỉ chứa các giai đoạn tổng hợp sau:

db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)4 và bí danh của nó db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)5

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
6 và bí danh của nó
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
7

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
8 và bí danh của nó
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
9exactly 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
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
6 (possibly multiple times), you cannot specify the following for
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2 that includes 2 separate filter documents for
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
6:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]

Để biết thêm thông tin, hãy xem Cập nhật với một đường ống tổng hợ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 } }
]

Để cập nhật với một tài liệu thay thế, xem

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
0Specify
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2 for an Array Update Operations.

Không bắt buộc. Khi

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
2,
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 hoặc:

Tạo một tài liệu mới nếu không có tài liệu nào khớp với

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4. Để biết thêm chi tiết, hãy xem hành vi UPSERT.

Cập nhật các tài liệu phù hợp với

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4.query predicate.

Để tránh nhiều UPSERT, hãy đảm bảo rằng các trường

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 được lập chỉ mục duy nhất.

Mặc định là

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
7.

Không bắt buộc. Một tài liệu thể hiện mối quan tâm viết. Bỏ qua để sử dụng mối quan tâm ghi mặc định.Specify

try {
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
} catch (e) {
print(e);
}
0 for Update Operations.

Không đặt rõ ràng mối quan tâm ghi cho hoạt động nếu chạy trong một giao dịch. Để sử dụng viết mối quan tâm với các giao dịch, xem giao dịch và viết mối quan tâm.

Phương thức trả về một tài liệu chứa:

  • Boolean

    try {
    db.restaurant.updateMany(
    { violations: { $gt: 4 } },
    { $set: { "Review" : true } }
    );
    } catch (e) {
    print(e);
    }
    1 là
    db.collection.updateMany(
    ,
    [
    { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
    { $unset: [ "misc1", "misc2" ] }
    ]
    ...
    )
    2

  • try {
    db.restaurant.updateMany(
    { violations: { $gt: 4 } },
    { $set: { "Review" : true } }
    );
    } catch (e) {
    print(e);
    }
    4 chứa số lượng tài liệu phù hợp

  • try {
    db.restaurant.updateMany(
    { violations: { $gt: 4 } },
    { $set: { "Review" : true } }
    );
    } catch (e) {
    print(e);
    }
    5 chứa số lượng tài liệu đã sửa đổi

  • try {
    db.restaurant.updateMany(
    { violations: { $gt: 4 } },
    { $set: { "Review" : true } }
    );
    } catch (e) {
    print(e);
    }
    6 chứa
    try {
    db.restaurant.updateMany(
    { violations: { $gt: 4 } },
    { $set: { "Review" : true } }
    );
    } catch (e) {
    print(e);
    }
    7 cho tài liệu Upserted

Khi triển khai chạy với

try {
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
} catch (e) {
print(e);
}
8, người dùng phải có quyền truy cập bao gồm các đặc quyền 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 } }
    ]
    8 Hành động trên (các) bộ sưu tập được chỉ định.

  • { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

    0 Hành động trên (các) bộ sưu tập được chỉ định.

  • { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

    1 Hành động trên (các) bộ sưu tập được chỉ định nếu hoạt động dẫn đến UPSERT.

Vai trò tích hợp

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

2 cung cấp các đặc quyền cần thiết.

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 Cập nhật tất cả các tài liệu phù hợp trong bộ sưu tập phù hợp với
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4, sử dụng các tiêu chí
// 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 } }
]
8 để áp dụng sửa đổi. updates all matching documents in the collection that match the
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4, using the
// 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 } }
]
8 criteria to apply modifications.

Nếu

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 và không có tài liệu nào khớp với
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4,

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 sẽ tạo một tài liệu mới dựa trên các tham số
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 và
// 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 } }
]
8.

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
creates a new document based on the
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 and
// 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 } }
]
8 parameters.

Nếu bạn chỉ định

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 trên bộ sưu tập Sharded, bạn phải bao gồm khóa Shard đầy đủ trong
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4. Để biết thêm hành vi

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8, xem các bộ sưu tập Sharded.

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
behavior, see Sharded Collections.

Xem Cập nhật nhiều tài liệu với UPSERT.Update Multiple Documents with Upsert.

Đối với thông số kỹ thuật sửa đổi, phương thức

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 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 để thực hiện.

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
method can accept a document that only contains update operator expressions to perform.

Ví dụ:

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)

Bắt đầu từ MongoDB 4.2, phương pháp

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 có thể chấp nhận đường ống tổng hợp
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5, "Review" : true }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8, "Review" : true }
6 chỉ định các sửa đổi để thực hiện. Đường ống có thể bao gồm các giai đoạn sau:

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
method can accept an aggregation pipeline
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5, "Review" : true }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8, "Review" : true }
6 that specifies the modifications to perform. The pipeline can consist of the following stages:

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    4 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    5

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    6 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    7

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    8 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    9

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ụ:

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)

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

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
16:

Phương thức cập nhật trong MongoDB là gì?

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 method is available for time series collections starting in MongoDB 5.1.

MongoDB cung cấp các phương thức sau để cập nhật tài liệu trong bộ sưu tập: db.collection.updateone () Cập nhật tối đa một tài liệu phù hợp với một bộ lọc được chỉ định mặc dù nhiều tài liệu có thể khớp với bộ lọc được chỉ định. db.collection.updatemany () Cập nhật tất cả các tài liệu phù hợp với một bộ lọc được chỉ định.

  • UPSERT trong Cập nhật MongoDB là gì?

  • Trong MongoDB, UPSERT là một tùy chọn được sử dụng cho hoạt động cập nhật, ví dụ: Cập nhật (), FindAndModify (), v.v. hoặc nói cách khác, UPSERT là sự kết hợp của Cập nhật và Chèn (Cập nhật + Chèn = UPSERT).

  • Lệnh nào được sử dụng để cập nhật MongoDB?

  • MongoDB cung cấp lệnh cập nhật () để cập nhật các tài liệu của bộ sưu tập.

    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    0 method.

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    0 Cập nhật tất cả các tài liệu phù hợp trong bộ sưu tập phù hợp với
    db.collection.updateMany(
    ,
    [
    { $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
    { $unset: [ "misc1", "misc2" ] }
    ]
    ...
    )
    4, sử dụng các tiêu chí
    // 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 } }
    ]
    8 để áp dụng sửa đổi.

Nếu

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 và không có tài liệu nào khớp với
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4,

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 sẽ tạo một tài liệu mới dựa trên các tham số
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 và
// 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 } }
]
8.

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
operation that includes

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 and is on a sharded collection, you must include the full shard key in the
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4.

Nếu bạn chỉ định

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 trên bộ sưu tập Sharded, bạn phải bao gồm khóa Shard đầy đủ trong
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4. Để biết thêm hành vi

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8, xem các bộ sưu tập Sharded. is not compatible with
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
18

Xem Cập nhật nhiều tài liệu với UPSERT. can be used inside multi-document transactions.

Đối với thông số kỹ thuật sửa đổi, phương thức { "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }8 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 để thực hiện.

Ví dụ:

Bắt đầu từ MongoDB 4.2, phương pháp

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 có thể chấp nhận đường ống tổng hợp
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5, "Review" : true }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8, "Review" : true }
6 chỉ định các sửa đổi để thực hiện. Đường ống có thể bao gồm các giai đoạn sau:

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
4 và bí danh của nó
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5not a cross-shard write transaction.

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
6 và bí danh của nó
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
7

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
with

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 can be run on an existing collection or a non-existing collection. If run on a non-existing collection, the operation creates the collection.

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
8 và bí danh của nó
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
9

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.

db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)5 và db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)7 được sử dụng trong đường ống liên quan đến các giai đoạn tổng hợp db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)5 và db.collection.updateMany( , { $set: { status: "D" }, $inc: { quantity: 2 } }, ...)7

Để biết ví dụ, xem cập nhật với đường ống tổng hợp.

Bộ sưu tập

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
22 chứa các tài liệu sau:

{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }

Hoạt động sau đây cập nhật tất cả các tài liệu trong đó

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
23 lớn hơn
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
24 và
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 Một cờ để xem xét:

try {
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
} catch (e) {
print(e);
}

Hoạt động trả về:

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

Bộ sưu tập hiện chứa các tài liệu sau:

{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5, "Review" : true }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8, "Review" : true }

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:
}
0

Cài đặt

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

6 sẽ chèn một tài liệu nếu không tìm thấy trận đấu.

Bắt đầu từ MongoDB 4.2,

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8 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:

{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }

8
can use an aggregation pipeline for the update. The pipeline can consist of the following stages:

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    4 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    5

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    6 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    7

  • db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    8 và bí danh của nó
    db.collection.updateMany(
    ,
    { $set: { status: "D" }, $inc: { quantity: 2 } },
    ...
    )
    9

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:
}
34 với các tài liệu sau:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
1

Giả sử rằng thay vì các trường

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
35 và
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
36 riêng biệt, bạn muốn thu thập chúng thành một trường
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
37 mới. Hoạt động cập nhật sau đây sử dụng đường ống tổng hợp để:

  • Thêm trường

    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    37 mới và đặt trường
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    39.

  • Xóa các trường

    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    35 và
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    36 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:
}
2

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:

Để 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 } }
]
16:

  • Phương thức cập nhật trong MongoDB là gì?

  • MongoDB cung cấp các phương thức sau để cập nhật tài liệu trong bộ sưu tập: db.collection.updateone () Cập nhật tối đa một tài liệu phù hợp với một bộ lọc được chỉ định mặc dù nhiều tài liệu có thể khớp với bộ lọc được chỉ định. db.collection.updatemany () Cập nhật tất cả các tài liệu phù hợp với một bộ lọc được chỉ định.

Giai đoạn thứ hai
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
7 loại bỏ các trường
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
35 và
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
36.

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:
}
59 với các tài liệu sau:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
4

Sử dụng một đường ống tổng hợp, bạn có thể cập nhật các 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:
}
5

Ghi chú

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 được sử dụng trong đường ống đề cập đến giai đoạn tổng hợp
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 chứ không phải các toán tử cập nhật
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5

Giai đoạn đầu tiên

Giai đoạn

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5:

  • Tính toán một trường mới

    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    64 dựa trên trung bình của trường
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    65. Xem
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    66 để biết thêm thông tin về toán tử tổng hợp
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    66 và
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    68 để biết thêm thông tin về toán tử tập hợp cắt ngắn
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    68.

  • Đặt trường

    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    39 thành giá trị của biến tổng hợp
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    53. Biến tổng hợp
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    53 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ép
    collation: {
    locale: ,
    caseLevel: ,
    caseFirst: ,
    strength: ,
    numericOrdering: ,
    alternate: ,
    maxVariable: ,
    backwards:
    }
    55 và kèm theo trích dẫn.

Giai đoạn thứ hai
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 tính toán một trường mới
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
75 dựa trên trường
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
64 được tính toán trong giai đoạn trước. Xem
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
77 để biết thêm thông tin về toán tử tổng hợp
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
77.

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:
}
6

Mẹo

Xem thêm:

Bộ sưu tập

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
79 chứa các tài liệu sau:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
7

Hoạt động sau đây cập nhật tất cả các tài liệu với

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
80 lớn hơn 4 và
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
81 bằng
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
82:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
8

Hoạt động trả về:

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
9

Bộ sưu tập hiện chứa các tài liệu sau:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
0

Vì không có tài liệu nào khớp với bộ lọc và

db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
1 là
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
2,
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0 đã chèn tài liệu với
try {
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
} catch (e) {
print(e);
}
7 được tạo, các điều kiện bình đẳng từ
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4 và các bộ điều chỉnh
// 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 } }
]
8.
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
0
inserted the document with a generated
try {
db.restaurant.updateMany(
{ violations: { $gt: 4 } },
{ $set: { "Review" : true } }
);
} catch (e) {
print(e);
}
7, the equality conditions from the
db.collection.updateMany(
,
[
{ $set: { status: "Modified", comments: [ "$misc1", "$misc2" ] } },
{ $unset: [ "misc1", "misc2" ] }
]
...
)
4, and the
// 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 } }
]
8 modifiers.

Đưa ra một bộ bản sao ba thành viên, thao tác sau đây chỉ định

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
89 của
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
90 và
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
91 của
collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
92:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
1

Nếu sự thừa nhận mất nhiều thời gian hơn giới hạn

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
91, 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 } }
]
2

Bảng sau đây giải thích các giá trị có thể của

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
94:

Nguồn gốc

Sự mô tả

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
95

Mối quan tâm ghi được chỉ định trong ứng dụng.

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
96

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

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
97

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
98

Mối quan tâm ghi có nguồn gốc từ trường

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
99 của bộ bản sao.

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
00

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 } }
]
01 có các tài liệu sau:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
3

Hoạt động sau bao gồm tùy chọn đối chiếu:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
4

Bắt đầu trong MongoDB 3.6, khi cập nhật trường mảng, bạn có thể chỉ định

{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2 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 } }
]
03 với các tài liệu sau:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
5

Để cập nhật tất cả các yếu tố lớn hơn hoặc bằng

collation: {
locale: ,
caseLevel: ,
caseFirst: ,
strength: ,
numericOrdering: ,
alternate: ,
maxVariable: ,
backwards:
}
92 trong mảng
// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
05, hãy sử dụng toán tử vị trí được lọc
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
3 với tùy chọn
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
6

Sau khi hoạt động, bộ sưu tập chứa các tài liệu sau:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
7

Tạo bộ sưu tập

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
08 với các tài liệu sau:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
8

Để sửa đổi giá trị của trường

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
09 cho tất cả các phần tử trong mảng
// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
05 trong đó lớp lớn hơn hoặc bằng
// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
11, hãy sử dụng toán tử vị trí được lọc
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
3 với
{ "_id" : 1, "name" : "Central Perk Cafe", "violations" : 3 }
{ "_id" : 2, "name" : "Rock A Feller Bar and Grill", "violations" : 2 }
{ "_id" : 3, "name" : "Empire State Sub", "violations" : 5 }
{ "_id" : 4, "name" : "Pizza Rat's Pizzaria", "violations" : 8 }
2:

// INVALID
[
{ "x.a": { $gt: 85 } },
{ "x.b": { $gt: 80 } }
]
9

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 } }
]
0

Mớ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:
}
34 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 } }
]
1

Tạ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 } }
]
2

Hoạ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 } }
]
15:

Ghi chú

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 được sử dụng trong đường ống đề cập đến giai đoạn tổng hợp
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5 chứ không phải các toán tử cập nhật
db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5

// 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 } }
]
3

Giai đoạn đầu tiên

// 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 } }
]
4

Giai đoạn

db.collection.updateMany(
,
{ $set: { status: "D" }, $inc: { quantity: 2 } },
...
)
5:

// 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 } }
]
5

Phương thức cập nhật trong MongoDB là gì?

MongoDB cung cấp các phương thức sau để cập nhật tài liệu trong bộ sưu tập: db.collection.updateone () Cập nhật tối đa một tài liệu phù hợp với một bộ lọc được chỉ định mặc dù nhiều tài liệu có thể khớp với bộ lọc được chỉ định.db.collection.updatemany () Cập nhật tất cả các tài liệu phù hợp với một bộ lọc được chỉ định.

UPSERT trong Cập nhật MongoDB là gì?

Trong MongoDB, UPSERT là một tùy chọn được sử dụng cho hoạt động cập nhật, ví dụ:Cập nhật (), FindAndModify (), v.v. hoặc nói cách khác, UPSERT là sự kết hợp của Cập nhật và Chèn (Cập nhật + Chèn = UPSERT).an option that is used for update operation e.g. update(), findAndModify(), etc. Or in other words, upsert is a combination of update and insert (update + insert = upsert).

Lệnh nào được sử dụng để cập nhật MongoDB?

MongoDB cung cấp lệnh cập nhật () để cập nhật các tài liệu của bộ sưu tập.