MongoDB создать уникальное поле, но не проиндексированы?

Logger доступен только в среде файлов сценариев google apps .gs, а не в среде javascript.

Итак, если вы хотите войти в javascript, вы можете использовать console.log(message)

Если вы непреклонны или хотите войти в журналы сценариев приложений Google, вы можете создать такую ​​функцию и сделать журналы, передав сообщение этому

// In .gs file
function make_log(message) {
    Logger.log(message)
}

// In frontend/html/js code
$("#click").click(function(){
    google.script.run.make_log("Clicked");
});
-1
задан Sudhanshu Gaur 19 January 2019 в 21:25
поделиться

2 ответа

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

при каждой вставке, обновлении и удалении

Эти накладные расходы связаны с уникальными ограничениями, а не с индексами.

каждый индекс занимает некоторое пространство

Да, конечно, для хранения индексов на HDD или SSD требуется некоторое пространство, но пока вы этого не делаете read/query , это не повлияет на выполнение других операций.

Подробнее: MongoDB Внутренняя реализация индексации?

0
ответ дан Vu Huu Cuong 19 January 2019 в 21:25
поделиться

В качестве альтернативы, вы можете использовать пользовательское значение для поля _id, которое:

  • должно присутствовать в каждом документе
  • , чтобы иметь уникальное значение в пределах коллекция
  • индексируется по умолчанию

В разделе Имена полей :

Имя поля _id зарезервировано для использования в качестве первичный ключ; его значение должно быть уникальным в коллекции, неизменным и может быть любого типа, кроме массива.

Если вы не предоставите поле _id при вставке документа, MongoDB создаст его для вас, используя ObjectId .

Если ваше требование требует использования уникального ограничения, и вы не хотите создавать дополнительный индекс для обеспечения уникальности, просто используйте поле _id.

0
ответ дан Kevin Adistambha 19 January 2019 в 21:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: