В MongoDB нет схемы, поэтому вам не нужно добавлять поле в каждый документ.Просто начните писать новые документы с этим полем или обновите старые документы, когда у вас есть это значение.
Что касается индексации, теперь вы можете использовать разреженных индексов , они будут более эффективными, еслибольшинство ваших документов не имеют этого поля.
Кроме того, вы можете захотеть, чтобы это поле keyword
было массивом.Он может обрабатываться более эффективно, чем строка.
Если вы хотите добавить поле с таким же значением для всех документов в коллекции, вы можете использовать это:
db.collection.update({}, // update all documents
{$set : {keyword : []}}, // or another value
false, // is upsert?
true) // is multi-update?
Когда вы делаете $set
, вы не можете использовать значения из других полей.Поэтому, если это новое значение будет функцией других полей, у вас нет другого выбора, кроме как циклически просматривать документы и обновлять их по одному.