2013-06-11 2 views
0
obj = { 
    date: 137097408891, 
    id: '1234', 
    value: 'value' 
} 

Что я хочу это сделать, примените поле value к объекту с идентификатором, только если дата более новая, затем текущая сохранена. Если документ с этим идентификатором не сохранен, просто сохраните его.Успокойтесь в Монго по дате?

Я использую node-mongodb-native. Есть ли способ сделать это без предварительного получения документа, проверяющего дату и сохранения его снова?

Благодаря

ответ

1

Данный объект o

db.collection.update({ id:o.id, date: { $lt:o.date } }, {$set : { o }}, {upsert:true}); 

Это предполагает, что существует единственный индекс id.

+1

О, ладно, я думал об этом, но я думал, что он попытается вставить новый документ, если сохраненный был более новым. – boom

+0

это будет, но это не удастся, поскольку будет нарушено уникальное ограничение на id, которое вам нужно :) –

+0

Почему этот бросок, 'Ошибка: нельзя использовать writeConcern без предоставленного обратного вызова'? – boom