Вставка документов в MongoDB: разные типы данных

Очистим коллекцию от документов, удалив все существующие записи. Затем добавим новый документ с помощью метода 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.

Что будем искать? Например,программа