在锂离子电池中使用MongoDB upsert

在锂离子电池中使用MongoDB upsert,mongodb,lithium,Mongodb,Lithium,我在使用MongoDB进行锂离子电池升级时遇到了一些问题。更新工作正常,但无法进行插入。我的代码是: Feeds::update( array('data' => array('user_id' => array('$addToSet' => $user["_id"]) ) ), //what to change array('conditions' => array('

我在使用MongoDB进行锂离子电池升级时遇到了一些问题。更新工作正常,但无法进行插入。我的代码是:

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代码都不起作用。它们是否是$addToSet的替代方案,不允许在用户ID数组中重复


抱歉,我对Limition和Mongo都是新手

要更新的前两个参数似乎有问题。这些参数用于数据和条件,因此在传递的数组中不需要这些键。试试这个

Feeds::update(
    array('$addToSet' => 
        array('user_id' => $user["_id"]) 
    ), //what to change
    array('address' => $address), //where to change it
    array('upsert' => true)
);

我不确定为什么查询不能直接在MongoDB中工作。这对我来说很好。

要更新的前两个参数似乎有问题。这些参数用于数据和条件,因此在传递的数组中不需要这些键。试试这个

Feeds::update(
    array('$addToSet' => 
        array('user_id' => $user["_id"]) 
    ), //what to change
    array('address' => $address), //where to change it
    array('upsert' => true)
);
我不确定为什么查询不能直接在MongoDB中工作。这对我来说很好