Ten rozdział opisuje, jak wstawić dane dokumentu do MongoDB przy użyciu powłoki mongo.
Wstawianie pojedynczego dokumentu
Metoda db.collection.insertOne()
służy do wstawiania pojedynczego dokumentu do kolekcji.
Jeśli dokument nie określa pola _id
, MongoDB automatycznie generuje unikalny ObjectId
dla pola _id
.
Uwaga:
ObjectId
to wbudowany generator unikalnych identyfikatorów w MongoDB używany do generowania identyfikatorów.
Przykład: Wstawienie dokumentu do kolekcji inventory:
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
Zwraca:
{
"acknowledged" : true,
"insertedId" : ObjectId("609bf11dfc901345cafc438a")
}
Jeśli wstawianie powiedzie się, zwracany jest klucz główny. Pole insertedId
to automatycznie wygenerowany unikalny identyfikator przez MongoDB. Jeśli kolekcja inventory nie istnieje, jest ona tworzona automatycznie.
Zapytanie o wstawiony dokument:
> db.inventory.find( { item: "canvas" } )
{ "_id" : ObjectId("609bf11dfc901345cafc438a"), "item" : "canvas", "qty" : 100, "tags" : [ "cotton" ], "size" : { "h" : 28, "w" : 35.5, "uom" : "cm" } }
Przy użyciu metody find
wprowadź warunek zapytania, aby znaleźć dane dokumentu, w którym item
to "canvas".
Wstawianie wielu dokumentów
Metoda db.collection.insertMany()
może wstawić wiele dokumentów do kolekcji.
Przykład:
Wstaw trzy dokumenty, przekazując tablicę do metody insertMany
:
db.inventory.insertMany([
{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])
Wartość zwracana:
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("609bf30ffc901345cafc438b"),
ObjectId("609bf30ffc901345cafc438c"),
ObjectId("609bf30ffc901345cafc438d")
]
}
Zwraca identyfikatory nowo wstawionych trzech dokumentów.
Zachowanie wstawiania
Tworzenie kolekcji
W MongoDB nie ma konieczności tworzenia kolekcji z góry. Podczas pierwszego wstawiania danych, jeśli kolekcja nie istnieje, jest ona tworzona automatycznie.
Pole _id
W MongoDB każdy przechowywany dokument w kolekcji ma unikalne pole _id
pełniące rolę klucza głównego. Jeśli wstawiany dokument pomija pole _id
, sterownik MongoDB automatycznie generuje ObjectId
dla pola _id
.
Atomowość
Wszystkie operacje zapisu w MongoDB są operacjami atomowymi na poziomie pojedynczego dokumentu.