Latest web development tutorials
×

MongoDB курс

MongoDB курс NoSQL Краткое введение MongoDB Краткое введение Window устанавливать MongoDB Linux устанавливать MongoDB MongoDB Интерпретация Концепции MongoDB подключение MongoDB Создание базы данных MongoDB Удалить базу данных MongoDB Вставить документ MongoDB Обновление документации MongoDB Удаление документов MongoDB документ Запрос MongoDB Условный оператор MongoDB $type операторы MongoDB Limit & Skip MongoDB последовательность MongoDB индекс MongoDB агрегирование MongoDB копия MongoDB Ломтики MongoDB Резервное копирование и восстановление MongoDB монитор MongoDB Java MongoDB PHP распространение MongoDB PHP MongoDB PHP7

MongoDB Расширенный учебник

MongoDB отношения MongoDB ссылки на базы данных MongoDB Индекс покрытия запроса MongoDB анализ запросов MongoDB атомарные операции MongoDB Расширенный индексации MongoDB ограничения индекса MongoDB ObjectId MongoDB Map Reduce MongoDB Полнотекстовый поиск MongoDB Регулярные выражения MongoDB Инструменты управления MongoDB GridFS MongoDB Фиксированный набор MongoDB Автоматический рост

MongoDB автоматически увеличивается

MongoDB есть не то же самое, как возможности SQL для выращивания автоматически, _id MongoDB составляет 12 байт, который однозначно идентифицирует систему автоматически.

Тем не менее, в некоторых случаях нам может потребоваться реализовать ObjectId функцию автоматического роста.

Поскольку MongoDB не реализует эту функцию, мы можем быть запрограммированы для достижения, мы достигнем следующего поля _id растут автоматически счетчики коллекции.


Коллекция Используйте счетчики

Рассмотрим продукты документацию следующий. Мы надеемся добиться от 1,2,3,4 поля _ID к п функция автоматического роста.

{
  "_id":1,
  "product_name": "Apple iPhone",
  "category": "mobiles"
}

Для этого нужно создать набор счетчиков, значения полей автоматическая последовательность может быть долгим:

>db.createCollection("counters")

Теперь мы вводим следующие документы счетчиков в коллекции, используйте КодПродукта как ключ:

{
  "_id":"productid",
  "sequence_value": 0
}

sequence_value поле представляет собой последовательность значений путем автоматического роста после.

Используйте следующую последовательность команд, чтобы вставить счетчики документа коллекции:

>db.counters.insert({_id:"productid",sequence_value:0})

Создание функции Javascript

Теперь мы создаем функцию getNextSequenceValue как имя входной последовательности, указанная последовательность будет автоматически расти на 1 и возвращает последнее значение последовательности. В примере в этой серии статей называется ProductID.

>function getNextSequenceValue(sequenceName){
   var sequenceDocument = db.counters.findAndModify(
      {
         query:{_id: sequenceName },
         update: {$inc:{sequence_value:1}},
         new:true
      });
   return sequenceDocument.sequence_value;
}

Используйте функцию Javascript

Далее мы будем использовать функцию getNextSequenceValue, чтобы создать новый документ и установить автоматическое значение последовательности документ _id возвращает:

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Apple iPhone",
   "category":"mobiles"})

>db.products.insert({
   "_id":getNextSequenceValue("productid"),
   "product_name":"Samsung S3",
   "category":"mobiles"})

Как вы можете видеть, мы используем функцию getNextSequenceValue, чтобы установить поле _id.

Для проверки эффективности функции, мы можем использовать следующую команду, чтобы прочитать документ:

>db.products.find()

Приведенная выше команда возвращает следующие результаты, мы нашли _id поле самостоятельного роста:

{ "_id" : 1, "product_name" : "Apple iPhone", "category" : "mobiles"}

{ "_id" : 2, "product_name" : "Samsung S3", "category" : "mobiles" }