Chèn trả lại MongoDB là gì?

Trong quá trình chèn, mongod sẽ tạo trường _id và gán cho nó một giá trị ObjectId duy nhất, như được xác minh bởi tài liệu được chèn. Để xem tài liệu đã chèn, hãy xem câu lệnh sau


> db.invoice.find();
{ "_id" : ObjectId("567554d2f61afaaed2aae48f"), "inv_no" : "I00001", "inv_date" : "10/10/2012" }

Thí dụ. Chèn một tài liệu chỉ định an_idField

Trong ví dụ sau, tài liệu được chuyển đến phương thức theinsert() bao gồm the_idfield. Giá trị của_idphải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );

đầu ra

> db.invoice.insert( { _id: 901,inv_no: "I00001", inv_date: "10/10/2012" } );
WriteResult({ "nInserted" : 1 })

Thao tác chèn tài liệu sau vào bộ sưu tập sản phẩm

{ "_id" : 901, "inv_no" : "I00001", "inv_date" : "10/10/2012" }

Thí dụ. Chèn nhiều tài liệu

Ví dụ sau thực hiện thao tác chèn hàng loạt ba tài liệu bằng cách chuyển một mảng tài liệu tới phương thức insert(). Các tài liệu trong mảng không nhất thiết phải có các trường giống nhau. Chẳng hạn, tài liệu đầu tiên trong mảng có an_idfield và aunitfield. Nhưng tài liệu thứ hai và thứ ba không chứa an_idfield, mongod sẽ tạo the_idfield cho tài liệu thứ hai và thứ ba trong quá trình chèn

db.orders.insert(
   [
     { _id: 15, ord_no: 2001, qty: 200, unit: "doz" },
     { ord_no: 2005, qty: 320 },
     { ord_no: 2008, qty: 250, rate:85 }
   ]
);

đầu ra

BulkWriteResult({
        "writeErrors" : [ ],
        "writeConcernErrors" : [ ],
        "nInserted" : 3,
        "nUpserted" : 0,
        "nMatched" : 0,
        "nModified" : 0,
        "nRemoved" : 0,
        "upserted" : [ ]
})

Các hoạt động chèn ba tài liệu sau đây

{ "_id" : 15, "ord_no" : 2001, "qty" : 200, "unit" : "doz" }
{ "_id" : ObjectId("56755896f61afaaed2aae490"), "ord_no" : 2005, "qty" : 320 }
{ "_id" : ObjectId("56755896f61afaaed2aae491"), "ord_no" : 2008, "qty" : 250, "rate" : 85 }

Lấy dữ liệu nhà hàng từ đây

Cư xử

Viết an toàn

Phương thức insert() sử dụng lệnh chèn, sử dụng mối quan tâm ghi mặc định. Để chỉ định mối quan tâm ghi khác, hãy bao gồm mối quan tâm ghi trong tham số tùy chọn

Tạo bộ sưu tập

Nếu bộ sưu tập không tồn tại thì phương thức insert() sẽ tạo bộ sưu tập

Trường _id

Nếu tài liệu không chỉ định trường _id thì MongoDB sẽ thêm trường _id và gán một ObjectId duy nhất cho tài liệu trước khi chèn. Hầu hết các trình điều khiển tạo một ObjectId và chèn trường _id, nhưng mongod sẽ tạo và điền _id nếu trình điều khiển hoặc ứng dụng không

Nếu tài liệu chứa trường _id, thì giá trị _id phải là duy nhất trong bộ sưu tập để tránh lỗi khóa trùng lặp

Tóm lược. trong hướng dẫn này, bạn sẽ học cách sử dụng phương pháp MongoDB

mongosh bookdb

0 để chèn một tài liệu vào một bộ sưu tập

Giới thiệu về phương thức insertOne() của MongoDB

Phương pháp

mongosh bookdb

0 cho phép bạn chèn một tài liệu vào một bộ sưu tập

Phương thức

mongosh bookdb

0 có cú pháp như sau

db.collection.insertOne( <document>, { writeConcern: <document>} )

Code language: CSS (css)

Phương thức

mongosh bookdb

0 chấp nhận hai đối số

  • mongosh bookdb

    4 là một tài liệu mà bạn muốn chèn vào

    mongosh bookdb

    5. Đối số

    mongosh bookdb

    4 là bắt buộc
  • mongosh bookdb

    7 là một đối số tùy chọn mô tả mức độ xác nhận được yêu cầu từ MongoDB cho thao tác chèn vào máy chủ MongoDB độc lập hoặc tới các cụm được chia sẻ. Chúng ta sẽ thảo luận về writeConcern trong một hướng dẫn khác

Phương thức

mongosh bookdb

0 trả về một tài liệu chứa các trường sau

  • mongosh bookdb

    9 là một giá trị boolean. Nó được đặt thành true nếu thao tác chèn được thực hiện với mối quan tâm ghi hoặc sai nếu mối quan tâm ghi bị tắt
  • db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

    Code language: CSS (css)
    0 lưu trữ giá trị của trường

    db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

    Code language: CSS (css)
    1 của tài liệu được chèn

Lưu ý rằng nếu

mongosh bookdb

5 không tồn tại, phương thức

mongosh bookdb

0 cũng sẽ tạo bộ sưu tập và chèn

mongosh bookdb

4 vào đó

Nếu bạn không chỉ định trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1 trong tài liệu, MongoDB sẽ thêm trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1 và tạo một

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
7 duy nhất cho trường đó trước khi chèn

Nếu bạn chỉ định rõ ràng một giá trị cho trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1, bạn cần đảm bảo rằng giá trị đó là duy nhất trong bộ sưu tập. Nếu không, bạn sẽ gặp lỗi khóa trùng lặp

Để chèn nhiều tài liệu vào một bộ sưu tập, bạn sử dụng phương thức

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
9

Ví dụ về phương thức insertOne() của MongoDB

Đầu tiên, bạn cần khởi chạy mongo shell và kết nối nó với cơ sở dữ liệu

{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }

Code language: JSON / JSON with Comments (json)
0

mongosh bookdb

1) Ví dụ về chèn tài liệu không có trường _id

Ví dụ sau sử dụng phương thức

mongosh bookdb

0 để chèn một tài liệu mới vào bộ sưu tập sách

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)

đầu ra

{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }

Code language: JSON / JSON with Comments (json)

Trong ví dụ này, chúng tôi đã chuyển một tài liệu tới phương thức

mongosh bookdb

0 mà không chỉ định trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1. Do đó, MongoDB đã tự động thêm trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1 và gán cho nó một giá trị duy nhất là

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
7

Lưu ý rằng bạn sẽ thấy một giá trị

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
7 khác với ví dụ này vì các giá trị

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
7 dành riêng cho máy và thời gian khi phương thức

mongosh bookdb

0 thực thi

Để chọn tài liệu mà bạn đã chèn, bạn có thể sử dụng phương thức

{ "acknowledged" : true, "insertedId" : ObjectId("5f31cf00902f22de3464ddc4") }

Code language: JSON / JSON with Comments (json)
9 như thế này

db.books.find()

Code language: CSS (css)

đầu ra

[ { _id: ObjectId("621489fcf514a446bf1a98ea"), title: 'MongoDB insertOne', isbn: '0-7617-6154-3' } ]

Code language: JavaScript (javascript)

2) Ví dụ về chèn tài liệu có trường _id

Ví dụ sau sử dụng phương thức

mongosh bookdb

0 để chèn một tài liệu có trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1 vào bộ sưu tập

db.books.find()

Code language: CSS (css)
2

db.books.insertOne({ _id: 1, title: "Mastering Big Data", isbn: "0-9270-4986-4" });

Code language: CSS (css)

đầu ra

{ "acknowledged" : true, "insertedId" : 1 }

Code language: JSON / JSON with Comments (json)

Ví dụ sau cố gắng chèn một tài liệu khác có trường

db.books.insertOne({ title: 'MongoDB insertOne', isbn: '0-7617-6154-3' });

Code language: CSS (css)
1 đã tồn tại vào bộ sưu tập

db.books.find()

Code language: CSS (css)
2

Truy vấn MongoDB trả về cái gì?

Theo mặc định, truy vấn trong MongoDB trả về tất cả các trường trong tài liệu phù hợp . Để giới hạn lượng dữ liệu mà MongoDB gửi đến các ứng dụng, bạn có thể bao gồm một tài liệu phép chiếu để chỉ định hoặc hạn chế các trường trả về.

Đâu là sự khác biệt giữa insertvà save?

Chèn giống như việc bạn muốn chèn bất kỳ bản ghi mới nào và khi lưu hoạt động giống như thao tác cập nhật cho bản ghi hiện có .

Làm cách nào để chèn dữ liệu vào MongoDB?

Để chèn dữ liệu vào bộ sưu tập MongoDB, bạn cần sử dụng phương thức insert() hoặc save() của MongoDB .

Làm cách nào để xem dữ liệu đã chèn trong MongoDB?

Xem dữ liệu cụm của bạn . Lệnh này trả về đầu ra sau. PyMongo find_one() method. This command returns the following output.