考虑一个简单的mongo文档结构:
{_ id,firstTime,lastTime}
客户端需要插入具有已知ID的文档,或更新现有文档.'lastTime'应始终设置为某个最新时间.对于'firstTime',如果正在插入文档,则应将'firstTime'设置为当前时间.但是,如果已创建文档,则"firstTime"保持不变.我想纯粹用upserts(以避免仰视)来做.
我已经抓取了http://www.mongodb.org/display/DOCS/Updating,但我不知道如何完成特定的操作.
我不相信这是不合理的,有$ push和$ addToSet操作可以在数组字段上有效地执行此操作,只是在简单字段上没有任何相同的操作.这就像应该有$ setIf操作.
dom*_*ard 29
我遇到了完全相同的问题,并没有简单的解决方案<2.4但是因为2.4 $ setOnInsert运算符让你做到了.
db.collection.update( <query>,
{ $setOnInsert: { "firstTime": <TIMESTAMP> } },
{ upsert: true }
)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅setOnInsert的2.4发行说明.
| 归档时间: |
|
| 查看次数: |
6647 次 |
| 最近记录: |