Очистим коллекцию от документов, удалив все существующие записи. Затем добавим новый документ с помощью метода insertOne. Этот метод принимает объект в качестве аргумента. Создадим документ с такими парами «ключ-значение»:
- name: строка «Hello world»
- is: булево значение false
- number: число 10
- numberInt: число типа int (в формате extended JSON): 100
- numberLong: число типа long: 10000000000
- date: дата (в формате extended JSON MongoDB shell): new Date() — MongoDB сгенерирует текущую дату.
- object: объект с парами «ключ-значение»: { a: 10, b: true }
- array: массив: [1, 2, 3]
Обратите внимание, что поле _id отсутствует. MongoDB сгенерирует его автоматически. Команда для вставки документа:
db.first.insertOne({
name: "Hello world",
is: false,
number: 10,
numberInt: { "$numberInt": "100" },
numberLong: { "$numberLong": "10000000000" },
date: new Date(),
object: { a: 10, b: true },
array: [1, 2, 3]
})
Результат выполнения: acknowledged: true и сгенерированный _id.
Проверка вставленного документа
Выполним запрос find к коллекции first:
db.first.find()
Рассмотрим типы данных полей в результате:
- _id: сгенерированный MongoDB идентификатор типа ObjectId.
- name: строка.
- is: булево значение.
- number: число, преобразованное MongoDB в тип Decimal. Это поведение по умолчанию.
- numberInt: число целого типа (32-битное).
- numberLong: число типа Long.
- date: дата, сгенерированная MongoDB.
- object: объект с двумя парами «ключ-значение»; числовые значения преобразованы в Decimal.
- array: массив с тремя элементами, преобразованными в Decimal.
Типы данных в древовидном представлении
Древовидное представление отобразит все типы данных: ObjectId, String, Boolean, Double (для чисел), Int32, Int64, Date, Array (элементы — Double), Object (элементы — Double и Boolean). Вложенные объекты и массивы также будут показаны со своими типами данных.
Вставка документов с полями различных типов данных проста. Однако следует учитывать, что простые числа по умолчанию преобразуются в тип Decimal. В следующем разделе рассмотрим обработку дубликатов ID.