2017-02-06 3 views
1

Я пытаюсь добавить поле в коллекцию документов. Все, что я хочу сделать, это обновить каждый документ с помощью поля create_date с меткой времени, в которой они были созданы как значение. Я знаю, что вы можете получить timestamp из ObjectId с помощью _id.getTimestamp(), но я ищу некоторую команду оболочки mongodb, которую я мог бы использовать, чтобы сделать это легко.Ретроактивно обновлять коллекцию документов MongoDB с помощью поля даты создания

Thanks

ответ

0

У меня был тот же вопрос. Следующий код работает для меня в 3.2:

db.members.update({},{$set : {"createdAt":{ 
     "$date": "2017-01-01T09:19:38.116Z" 
    }}},false,true) 

В приведенном выше примере последние 2 поля ложной, верно определяет upsert и многоканальные флаги.

Upsert: если установлено значение true, создается новый документ, если документ не соответствует критериям запроса.

Multi: Если установлено значение true, обновляется несколько документов, соответствующих критериям запроса. Если установлено значение false, обновляется один документ.

В 3.2 вы можете использовать следующую команду, а также:

db.collection.updateMany({},{$set : {"createdAt": new Date("2017-01-01T09:19:38.116Z")}}) 
Смежные вопросы