Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De insert opdracht wordt gebruikt om nieuwe documenten in een verzameling te maken. Eén document of meerdere documenten kunnen in één gebruik worden ingevoegd.
Syntaxis
De basissyntaxis van de opdracht Invoegen is:
db.collection.insert(
<single document or array of documents>,
{
writeConcern: <document>,
ordered: <boolean>
}
)
Parameterwaarden
| Kenmerk | Description |
|---|---|
<single document or array of documents> |
Het document of de matrix met documenten die in de verzameling moeten worden ingevoegd |
writeConcern |
(Optioneel) Een document dat de schrijfprobleem uitdrukt. De schrijfprobleem beschrijft het niveau van bevestiging dat is aangevraagd bij de server voor de schrijfbewerking |
ordered |
(Optioneel) Als truede server de documenten in de opgegeven volgorde invoegt. Als falsede server de documenten in een willekeurige volgorde kan invoegen en alle documenten probeert in te voegen, ongeacht fouten |
-
<single document or array of documents>: het document of de matrix met documenten die u in de verzameling wilt invoegen. -
writeConcern: optioneel. Een document dat de schrijfprobleem uitdrukt. De schrijfprobleem beschrijft het niveau van bevestiging dat is aangevraagd bij de server voor de schrijfbewerking. -
ordered: optioneel. Alstruede server de documenten in de opgegeven volgorde invoegt. Alsfalsede server de documenten in een willekeurige volgorde kan invoegen en alle documenten probeert in te voegen, ongeacht fouten.
Voorbeeld(en)
Eén document invoegen
Met de volgende opdracht wordt één document ingevoegd in de archiefverzameling in de StoreData-database.
db.stores.insertOne({
"storeId": "12345",
"name": "Boulder Innovations",
"location": {
"lat": 37.7749,
"lon": -122.4194
},
"staff": {
"totalStaff": {
"fullTime": 15,
"partTime": 10
}
},
"sales": {
"totalSales": 500000.00,
"salesByCategory": [
{
"categoryName": "Laptops",
"totalSales": 300000.00
},
{
"categoryName": "Smartphones",
"totalSales": 200000.00
}
]
},
"promotionEvents": [
{
"eventName": "Summer Sale",
"promotionalDates": {
"startDate": "2024-06-01",
"endDate": "2024-06-30"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 15
},
{
"categoryName": "Smartphones",
"discountPercentage": 10
}
]
},
{
"eventName": "Holiday Specials",
"promotionalDates": {
"startDate": "2024-12-01",
"endDate": "2024-12-31"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 20
},
{
"categoryName": "Smartphones",
"discountPercentage": 25
}
]
}
]
})
Meerdere documenten invoegen
Met de volgende opdracht wordt een matrix met documenten ingevoegd in de verzameling winkels.
db.stores.insertMany([
{
"storeId": "12346",
"name": "Graphic Design Institute",
"location": {
"lat": 34.0522,
"lon": -118.2437
},
"staff": {
"totalStaff": {
"fullTime": 20,
"partTime": 5
}
},
"sales": {
"totalSales": 750000.00,
"salesByCategory": [
{
"categoryName": "Laptops",
"totalSales": 400000.00
},
{
"categoryName": "Smartphones",
"totalSales": 350000.00
}
]
},
"promotionEvents": [
{
"eventName": "Black Friday",
"promotionalDates": {
"startDate": "2024-11-25",
"endDate": "2024-11-30"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 25
},
{
"categoryName": "Smartphones",
"discountPercentage": 30
}
]
}
]
},
{
"storeId": "12347",
"name": "Relecloud",
"location": {
"lat": 40.7128,
"lon": -74.0060
},
"staff": {
"totalStaff": {
"fullTime": 10,
"partTime": 20
}
},
"sales": {
"totalSales": 600000.00,
"salesByCategory": [
{
"categoryName": "Laptops",
"totalSales": 350000.00
},
{
"categoryName": "Smartphones",
"totalSales": 250000.00
}
]
},
"promotionEvents": [
{
"eventName": "New Year Sale",
"promotionalDates": {
"startDate": "2024-01-01",
"endDate": "2024-01-07"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 10
},
{
"categoryName": "Smartphones",
"discountPercentage": 15
}
]
}
]
}
])
Een waarde opgeven voor het veld _id
Als het _id veld niet is opgegeven, genereert de server automatisch een unieke ObjectId()-waarde voor het document. Als het document het veld _id opgeeft, moet het een wereldwijd unieke waarde zijn voor alle documenten in de verzameling.
Als er een dubbele waarde voor het veld _id is opgegeven, wordt er een fout met een dubbele sleutelfout gegenereerd door de server.
{
"WriteErrors": [
{
"WriteError": {
"err": {
"index": 0,
"code": 11000,
"errmsg": "Duplicate key violation on the requested collection: Index '_id_'",
"errInfo": "undefined",
"op": {
"testField": "testValue",
"_id": "1"
}
}
}
}
]
}
Meerdere documenten in volgorde invoegen
Documenten die bulksgewijs worden ingevoegd, kunnen op volgorde worden ingevoegd bij het opgeven van 'geordende': true
db.stores.insertMany([
{
"_id": "123456",
"storeId": "123456",
"name": "Graphic Design Institute",
"location": {
"lat": 34.0522,
"lon": -118.2437
},
"staff": {
"totalStaff": {
"fullTime": 20,
"partTime": 5
}
},
"sales": {
"totalSales": 750000.00,
"salesByCategory": [
{
"categoryName": "Laptops",
"totalSales": 400000.00
},
{
"categoryName": "Smartphones",
"totalSales": 350000.00
}
]
},
"promotionEvents": [
{
"eventName": "Black Friday",
"promotionalDates": {
"startDate": "2024-11-25",
"endDate": "2024-11-30"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 25
},
{
"categoryName": "Smartphones",
"discountPercentage": 30
}
]
}
]
},
{
"_id": "234567",
"storeId": "234567",
"name": "Relecloud",
"location": {
"lat": 40.7128,
"lon": -74.0060
},
"staff": {
"totalStaff": {
"fullTime": 10,
"partTime": 20
}
},
"sales": {
"totalSales": 600000.00,
"salesByCategory": [
{
"categoryName": "Laptops",
"totalSales": 350000.00
},
{
"categoryName": "Smartphones",
"totalSales": 250000.00
}
]
},
"promotionEvents": [
{
"eventName": "New Year Sale",
"promotionalDates": {
"startDate": "2024-01-01",
"endDate": "2024-01-07"
},
"discounts": [
{
"categoryName": "Laptops",
"discountPercentage": 10
},
{
"categoryName": "Smartphones",
"discountPercentage": 15
}
]
}
]
}
], "ordered": true)
Met de geordende invoegopdracht wordt een antwoord geretourneerd waarin de volgorde wordt bevestigd waarin documenten zijn ingevoegd:
{
"acknowledged": true,
"insertedIds": {
"0": "123456",
"1": "234567"
}
}