Глава 6: Вставка документа в Golang MongoDB
Вставка документа
result, err := collection.InsertOne(
context.Background(), // Параметр контекста
bson.D{ // Определение документа JSON с использованием bson.D
{"item", "холст"},
{"qty", 100},
{"tags", bson.A{"хлопок"}},
{"size", bson.D{
{"h", 28},
{"w", 35.5},
{"uom", "см"},
}},
})
// Получение уникального идентификатора, сгенерированного для документа
id := result.InsertedID
Совет: Если вы не знакомы с представлением данных Golang MongoDB, пожалуйста, обратитесь к разделу "Модель данных Golang MongoDB" здесь.
Эквивалент вставки следующего документа JSON:
{
"item": "холст",
"qty": 100,
"tags": ["хлопок"],
"size": {
"h": 28,
"w": 35.5,
"uom": "см"
}
}
Запрос вновь вставленного документа
cursor, err := collection.Find(
context.Background(),
bson.D{{"item", "холст"}}, // Эквивалентное выражение: {"item": "холст"}
)
Массовая вставка
result, err := collection.InsertMany(
context.Background(),
[]interface{}{ // Передача массива документов, вставка данных трех документов
bson.D{ // Данные документа 1
{"item", "журнал"},
{"qty", int32(25)},
{"tags", bson.A{"пустой", "красный"}},
{"size", bson.D{
{"h", 14},
{"w", 21},
{"uom", "см"},
}},
},
bson.D{ // Данные документа 2
{"item", "коврик"},
{"qty", int32(25)},
{"tags", bson.A{"серый"}},
{"size", bson.D{
{"h", 27.9},
{"w", 35.5},
{"uom", "см"},
}},
},
bson.D{ // Данные документа 3
{"item", "коврик для мыши"},
{"qty", 25},
{"tags", bson.A{"гель", "синий"}},
{"size", bson.D{
{"h", 19},
{"w", 22.85},
{"uom", "см"},
}},
},
})
Запрос всех документов
cursor, err := collection.Find(
context.Background(),
bson.D{}, // Передача пустого условия запроса
)