Hướng dẫn how do i change a field in mongodb? - làm cách nào để thay đổi một trường trong mongodb?

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

Ghi chú

Định hướng

Trang sau đề cập đến toán tử cập nhật $set. Đối với giai đoạn tổng hợp $set, có sẵn trong MongoDB 4.2, xem $set$set. For the aggregation stage $set, available starting in MongoDB 4.2, see $set

$set Trình điều khiển $set thay thế giá trị của một trường bằng giá trị được chỉ định.
Hướng dẫn how do i change a field in mongodb? - làm cách nào để thay đổi một trường trong mongodb?

The $set operator replaces the value of a field with the specified value.

Biểu thức toán tử $set có dạng sau:$set operator expression has the following form:

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

Để chỉ định

db.products.insertOne(
{
_id: 100,
quantity: 250,
instock: true,
reorder: false,
details: { model: "14QQ", make: "Clothes Corp" },
tags: [ "apparel", "clothing" ],
ratings: [ { by: "Customer007", rating: 4 } ]
}
)
4 trong tài liệu nhúng hoặc trong một mảng, hãy sử dụng ký hiệu DOT.

Bắt đầu từ MongoDB 5.0, cập nhật các nhà khai thác xử lý các trường tài liệu với tên dựa trên chuỗi theo thứ tự từ vựng. Các trường có tên số được xử lý theo thứ tự số. Xem Cập nhật hành vi của các nhà khai thác để biết chi tiết.

Nếu trường không tồn tại, $set sẽ thêm một trường mới với giá trị được chỉ định, với điều kiện là trường mới không vi phạm ràng buộc loại. Nếu bạn chỉ định một đường dẫn chấm cho một trường không tồn tại, $set sẽ tạo các tài liệu nhúng khi cần thiết để thực hiện đường dẫn chấm đến trường.$set will add a new field with the specified value, provided that the new field does not violate a type constraint. If you specify a dotted path for a non-existent field, $set will create the embedded documents as needed to fulfill the dotted path to the field.

Nếu bạn chỉ định nhiều cặp giá trị trường, $set sẽ cập nhật hoặc tạo từng trường.$set will update or create each field.

Bắt đầu từ MongoDB 5.0,

db.products.insertOne(
{
_id: 100,
quantity: 250,
instock: true,
reorder: false,
details: { model: "14QQ", make: "Clothes Corp" },
tags: [ "apparel", "clothing" ],
ratings: [ { by: "Customer007", rating: 4 } ]
}
)
8 không còn gây ra lỗi khi bạn sử dụng toán tử cập nhật như $set với biểu thức toán hạng trống (
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
0). Một bản cập nhật trống dẫn đến không có thay đổi và không có mục nhập oplog được tạo (có nghĩa là hoạt động là không có op).$set with an empty operand expression (
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
0 ). An empty update results in no changes and no oplog entry is created (meaning that the operation is a no-op).

Tạo bộ sưu tập

db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
1:

db.products.insertOne(
{
_id: 100,
quantity: 250,
instock: true,
reorder: false,
details: { model: "14QQ", make: "Clothes Corp" },
tags: [ "apparel", "clothing" ],
ratings: [ { by: "Customer007", rating: 4 } ]
}
)

Đối với tài liệu khớp với các tiêu chí

db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
2 bằng
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
3, thao tác sau sử dụng toán tử $set để cập nhật giá trị của trường
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
5, trường
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
6 và trường
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
7.$set operator to update the value of the
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
5 field,
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
6 field, and the
db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)
7 field.

db.products.updateOne(
{ _id: 100 },
{ $set:
{
quantity: 500,
details: { model: "2600", make: "Fashionaires" },
tags: [ "coats", "outerwear", "clothing" ]
}
}
)

Hoạt động cập nhật:

  • Giá trị của

    db.products.updateOne(
    { _id: 100 },
    { $set:
    {
    quantity: 500,
    details: { model: "2600", make: "Fashionaires" },
    tags: [ "coats", "outerwear", "clothing" ]
    }
    }
    )
    5 đến
    db.products.updateOne(
    { _id: 100 },
    { $set:
    {
    quantity: 500,
    details: { model: "2600", make: "Fashionaires" },
    tags: [ "coats", "outerwear", "clothing" ]
    }
    }
    )
    9

  • Trường

    db.products.updateOne(
    { _id: 100 },
    { $set:
    {
    quantity: 500,
    details: { model: "2600", make: "Fashionaires" },
    tags: [ "coats", "outerwear", "clothing" ]
    }
    }
    )
    6 với tài liệu nhúng mới

  • Trường

    db.products.updateOne(
    { _id: 100 },
    { $set:
    {
    quantity: 500,
    details: { model: "2600", make: "Fashionaires" },
    tags: [ "coats", "outerwear", "clothing" ]
    }
    }
    )
    7 với mảng mới

{
_id: 100,
quantity: 500,
instock: true,
reorder: false,
details: { model: '2600', make: 'Fashionaires' },
tags: [ 'coats', 'outerwear', 'clothing' ],
ratings: [ { by: 'Customer007', rating: 4 } ]
}

Để chỉ định

db.products.insertOne(
{
_id: 100,
quantity: 250,
instock: true,
reorder: false,
details: { model: "14QQ", make: "Clothes Corp" },
tags: [ "apparel", "clothing" ],
ratings: [ { by: "Customer007", rating: 4 } ]
}
)
4 trong tài liệu nhúng hoặc trong một mảng, hãy sử dụng ký hiệu DOT.

Bắt đầu từ MongoDB 5.0, cập nhật các nhà khai thác xử lý các trường tài liệu với tên dựa trên chuỗi theo thứ tự từ vựng. Các trường có tên số được xử lý theo thứ tự số. Xem Cập nhật hành vi của các nhà khai thác để biết chi tiết.

db.products.updateOne(
{ _id: 100 },
{ $set: { "details.make": "Kustom Kidz" } }
)

Nếu trường không tồn tại, $set sẽ thêm một trường mới với giá trị được chỉ định, với điều kiện là trường mới không vi phạm ràng buộc loại. Nếu bạn chỉ định một đường dẫn chấm cho một trường không tồn tại, $set sẽ tạo các tài liệu nhúng khi cần thiết để thực hiện đường dẫn chấm đến trường.

{
_id: 100,
quantity: 500,
instock: true,
reorder: false,
details: { model: '2600', make: 'Kustom Kidz' },
tags: [ 'coats', 'outerwear', 'clothing' ],
ratings: [ { by: 'Customer007', rating: 4 } ]
}

Để chỉ định

db.products.insertOne(
{
_id: 100,
quantity: 250,
instock: true,
reorder: false,
details: { model: "14QQ", make: "Clothes Corp" },
tags: [ "apparel", "clothing" ],
ratings: [ { by: "Customer007", rating: 4 } ]
}
)
4 trong tài liệu nhúng hoặc trong một mảng, hãy sử dụng ký hiệu DOT.

Bắt đầu từ MongoDB 5.0, cập nhật các nhà khai thác xử lý các trường tài liệu với tên dựa trên chuỗi theo thứ tự từ vựng. Các trường có tên số được xử lý theo thứ tự số. Xem Cập nhật hành vi của các nhà khai thác để biết chi tiết.

db.products.updateOne(
{ _id: 100 },
{ $set:
{
"tags.1": "rain gear",
"ratings.0.rating": 2
}
}
)

Nếu trường không tồn tại, $set sẽ thêm một trường mới với giá trị được chỉ định, với điều kiện là trường mới không vi phạm ràng buộc loại. Nếu bạn chỉ định một đường dẫn chấm cho một trường không tồn tại, $set sẽ tạo các tài liệu nhúng khi cần thiết để thực hiện đường dẫn chấm đến trường.

{
_id: 100,
quantity: 500,
instock: true,
reorder: false,
details: { model: '2600', make: 'Kustom Kidz' },
tags: [ 'coats', 'rain gear', 'clothing' ],
ratings: [ { by: 'Customer007', rating: 2 } ]
}

Nếu bạn chỉ định nhiều cặp giá trị trường, $set sẽ cập nhật hoặc tạo từng trường.

Bắt đầu từ MongoDB 5.0, db.products.insertOne( { _id: 100, quantity: 250, instock: true, reorder: false, details: { model: "14QQ", make: "Clothes Corp" }, tags: [ "apparel", "clothing" ], ratings: [ { by: "Customer007", rating: 4 } ] })8 không còn gây ra lỗi khi bạn sử dụng toán tử cập nhật như $set với biểu thức toán hạng trống (db.products.updateOne( { _id: 100 }, { $set: { quantity: 500, details: { model: "2600", make: "Fashionaires" }, tags: [ "coats", "outerwear", "clothing" ] } })0). Một bản cập nhật trống dẫn đến không có thay đổi và không có mục nhập oplog được tạo (có nghĩa là hoạt động là không có op).

Làm cách nào để thêm một trường mới vào một bản ghi hiện có trong MongoDB?

Để thêm trường hoặc trường vào các tài liệu nhúng (bao gồm các tài liệu trong mảng) sử dụng ký hiệu dấu chấm. Xem ví dụ. Để thêm một phần tử vào một trường mảng hiện có với $ addfields, hãy sử dụng với $ concatarrays.use the dot notation. See example. To add an element to an existing array field with $addFields , use with $concatArrays .

Nhà điều hành nào được sử dụng để cập nhật các trường cụ thể trong MongoDB?

Sử dụng các biểu thức toán tử cập nhật ($ inc và $ set) DB. thu thập. Cập nhật () phương thức chỉ cập nhật các trường tương ứng trong tài liệu.Update Operator Expressions ( $inc and $set ) The db. collection. update() method updates only the corresponding fields in the document.

Làm cách nào để thay đổi tên trường trong MongoDB?

Bạn có thể sử dụng các phương thức sau để đổi tên các trường trong MongoDB:..
Phương thức 1: Đổi tên một trường db.collection.updatemany ({}, {$ đổi tên: {"OldField": "Newfield"}}, false, true).
Phương pháp 2: Đổi tên nhiều trường db.collection.updatemany ({}, {$ đổi tên: {"old1": "new1", "old2": "new2"}}, false, true).

Làm cách nào để thay đổi kiểu dữ liệu của một trường trong La bàn MongoDB?

Để chuyển đổi kiểu dữ liệu của trường, nhấp vào trường đó và chọn Chuyển đổi loại từ menu Ellipsis (...).Các loại dữ liệu được chuyển đổi bởi một đường ống tổng hợp.Đối với mỗi loại chuyển đổi bạn chọn, bạn có thể tìm thấy giai đoạn tổng hợp cơ bản bằng cách xem đường ống tổng hợp của bạn.click on that field and select Convert type from the Ellipsis (...) menu. Data types are converted by an aggregation pipeline. For each type conversion you select, you can find the underlying aggregation stage by viewing your aggregation pipeline.