我在用MongoDB在锂上执行upsert时遇到了一点问题。更新运行得很好,但不会执行插入。我的代码是:
Feeds::update(
array('data' =>
array('user_id' =>
array('$addToSet' => $user["_id"])
)
), //what to change
array('conditions' =>
array('address' => $address)
), //where to change it
array('upsert' => true)
);它应该对应于MongoDB查询:
db.osmblags.update( { "address" : "test address" }, { $addToSet : { "user_id" : "56" } }, { upsert : true } );查询和PHP代码都不起作用。它们是不是user_ids数组中不允许重复的$addToSet的替代品?
(对不起,我是Lithium和Mongo的新手
发布于 2013-04-19 21:49:59
update()的前两个论点似乎有问题。这些参数是用于数据和条件的,因此您不需要在要传递的数组中包含这些键。尝尝这个。
Feeds::update(
array('$addToSet' =>
array('user_id' => $user["_id"])
), //what to change
array('address' => $address), //where to change it
array('upsert' => true)
);我不确定为什么在MongoDB中查询不能直接为您工作。这对我来说很好。
https://stackoverflow.com/questions/16099236
复制相似问题