Hướng dẫn insertone mongodb example - ví dụ insertone mongodb

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

db.collection.insertOne()
Hướng dẫn insertone mongodb example - ví dụ insertone mongodb

Quan trọng

Phương pháp Mongosh

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

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
0. Đâ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. Để sử dụng lệnh cơ sở dữ liệu, hãy xem lệnh
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
1.
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
0
method. This is not the documentation for database commands or language-specific drivers, such as Node.js. To use the database command, see the
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
1 command.

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

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
2, 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

Chèn một tài liệu duy nhất vào một bộ sưu tập.

Phương pháp

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 có cú pháp sau:
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3
method has the following syntax:

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

Tham số

Loại hình

Sự mô tả

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
4

tài liệu

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

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
5

tài liệu

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

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.

Returns: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.
  • Một tài liệu chứa:

  • Một boolean

    try {
    db.products.insertOne( { item: "card", qty: 15 } );
    } catch (e) {
    print (e);
    };
    6 là
    try {
    db.products.insertOne( { item: "card", qty: 15 } );
    } catch (e) {
    print (e);
    };
    7 nếu hoạt động chạy với mối quan tâm viết hoặc
    try {
    db.products.insertOne( { item: "card", qty: 15 } );
    } catch (e) {
    print (e);
    };
    8 nếu viết mối quan tâm bị vô hiệu hóa.

Một trường

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
9 với giá trị
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 của tài liệu được chèn.
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3
method creates the collection.

Nếu bộ sưu tập không tồn tại, thì phương thức

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 sẽ tạo ra bộ sưu tập.

Nếu tài liệu không chỉ định trường _ID, thì

{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
2 sẽ thêm trường
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 và gán một
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
4 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 ra một ObjectID và chèn trường
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0, nhưng
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
2 sẽ tạo và điền vào
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 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

{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0, giá trị
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 phải là duy nhất trong bộ sưu tập để tránh lỗi chính trùng lặp. is not compatible with
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
1

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 không tương thích với
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
1db.collection.insertOne() throws either a
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
3 or
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
4 exception.

Lỗi, db.collection.insertOne() ném ngoại lệ

try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
3 hoặc
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
4. can be used inside multi-document transactions.

Quan trọng

db.collection.insertOne() có thể được sử dụng bên trong các giao dịch đa tài liệu.

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.not a cross-shard write transaction.

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.

Cụ thể, trong MongoDB 4.4 và lớn hơn, nếu bạn chỉ định chèn vào một bộ sưu tập không tồn tại trong một giao dịch, bộ sưu tập được tạo ngầm.

Trong MongoDB 4.4 trở lên, hoạt động phải được chạy trên một bộ sưu tập hiện có.

Mẹo

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.

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.

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 method does not contain the
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 field:

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};

Một tài liệu chứa:

{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}

Một boolean

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
6 là
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
7 nếu hoạt động chạy với mối quan tâm viết hoặc
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
8 nếu viết mối quan tâm bị vô hiệu hóa.

Một trường

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
9 với giá trị
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 của tài liệu được chèn.

Nếu bộ sưu tập không tồn tại, thì phương thức

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 sẽ tạo ra bộ sưu tập.
try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3
method includes the
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 field. The value of
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 must be unique within the collection to avoid duplicate key error.

try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}

Nếu tài liệu không chỉ định trường _ID, thì

{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
2 sẽ thêm trường
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 và gán một
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
4 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 ra một ObjectID và chèn trường
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0, nhưng
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
2 sẽ tạo và điền vào
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 nếu trình điều khiển hoặc ứng dụng không.

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

Nếu tài liệu chứa trường

{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0, giá trị
{
"acknowledged" : true,
"insertedId" : ObjectId("56fc40f9d735c28df206d078")
}
0 phải là duy nhất trong bộ sưu tập để tránh lỗi chính trùng lặp.

try {
db.products.insertOne( { _id: 10, "item" : "packing peanuts", "qty" : 200 } );
} catch (e) {
print (e);
}

try {
db.products.insertOne( { item: "card", qty: 15 } );
} catch (e) {
print (e);
};
3 không tương thích với
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
1

WriteError({
"index" : 0,
"code" : 11000,
"errmsg" : "E11000 duplicate key error collection: inventory.products index: _id_ dup key: { : 10.0 }",
"op" : {
"_id" : 10,
"item" : "packing peanuts",
"qty" : 200
}
})

Lỗi, db.collection.insertOne() ném ngoại lệ

try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
3 hoặc
try {
db.products.insertOne( { _id: 10, item: "box", qty: 20 } );
} catch (e) {
print (e);
}
4.

try {
db.products.insertOne(
{ "item": "envelopes", "qty": 100, type: "Self-Sealing" },
{ writeConcern: { w : "majority", wtimeout : 100 } }
);
} catch (e) {
print (e);
}

db.collection.insertOne() có thể được sử dụng bên trong các giao dịch đa tài liệu.

WriteConcernError({
"code" : 64,
"errmsg" : "waiting for replication timed out",
"errInfo" : {
"wtimeout" : true,
"writeConcern" : { // Added in MongoDB 4.4
"w" : "majority",
"wtimeout" : 100,
"provenance" : "getLastErrorDefaults"
}
}
})

Trong MongoDB 4.4 trở lên, hoạt động phải được chạy trên một bộ sưu tập hiện có.