文件考虑一个简单蒙戈文件结构仅设置值:mongodb的:upserting:如果被插入
{_id,firstTime,lastTime}
客户端需要插入一个文档具有已知ID,或更新现有文档。 'lasttime'应该总是设置为最近的一段时间。对于'firstTime',如果正在插入文档,则应将'firstTime'设置为当前时间。但是,如果文档已经创建,那么'firstTime'保持不变。我想纯粹用upserts来做(避免查找)。
我抓取http://www.mongodb.org/display/DOCS/Updating,但我只是不明白如何完成特定的操作。
我不认为这是不合理的,有$ push和$ addToSet操作可以在数组字段上有效地做到这一点,只是在简单字段上不会这样做。这就像应该有像$ setIf操作。
*如果文档已经创建,该字段应该保持不变*不会调用upsert(如在您的标题中) –
@ om-nom-nom我概述了最简单的情况,我更新了描述,所以有一个总是被更新的字段。 –
看起来像这个功能是针对2.4:https://jira.mongodb.org/browse/SERVER-340 – JohnnyHK