Лучшее руководство по MongoDB автоматически увеличивается в 2024 году. В этом руководстве вы можете изучить Коллекция Используйте счетчики,Создание функции Javascript,Используйте функцию Javascript,
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})
Теперь мы создаем функцию 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; }
Далее мы будем использовать функцию 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" }