【发布时间】:2014-08-20 15:32:42
【问题描述】:
这听起来类似于 Mongo $set。在这种情况下,我想更新文档(更新和/或删除字段)但忽略字段 creatorName,保持不变。
示例文档:
{id: 1, firstName: 'Testy', middleName: 'Jim', lastName: 'Shorts', creatorName: 'User1'}
更新到:
{id: 1, firstName: 'Production', lastName: 'Pants', creatorName: 'User1'}
如果我使用 set,creatorName 保持不变(好)并且 firstName 和 lastName 被更新(好),但 middleName 没有被删除(坏)。 Set 限制了在更新期间删除字段的能力。
这可以在查询中完成吗?没有 $unset?
【问题讨论】:
-
当然 - 你可以在同一个查询中使用 $set 和 $unset - stackoverflow.com/questions/17760741/…
-
很高兴知道,除非在某些情况下,我不知道要 $unset 哪些字段。我只知道新文档的外观,我需要忽略某些字段。可以查找以前的文档并进行比较,但会降低性能。
-
是的 - 听起来您正在尝试执行 mongo 不直接支持的相当复杂的操作。
标签: mongodb mongodb-query mongodb-php mongodb-update