mongodb $ inc数组中的一个字段

用户名

嗨,我有下面的数组结构

Array
(
    [_id] => MongoId Object
        (
            [$id] => 538978ce8ead0ec1048b456c
        )

    [cartId] => 98374319ff71dbc3a84b842b7a443cf7
    [products] => Array
        (
            [0] => Array
                (
                    [productId] => 100343
                    [quantity] => 17
                    [name] => a
                )

            [1] => Array
                (
                    [productId] => 100344
                    [quantity] => 3
                    [name] => ab
                )

            [2] => Array
                (
                    [productId] => 100345
                    [quantity] => 1
                    [name] => abc
                )

        )

而且我在根据productId增加产品数量时遇到问题

我现在使用该职位,但我在id上没有参考

 $oCartsCollection->update(array('cartId'=>'98374319ff71dbc3a84b842b7a443cf7'), array('$inc' => array('products.0.quantity'=>1)));
尼尔·伦恩

您需要做的是添加到查询中以从数组中选择和元素,然后使用位置$运算符来匹配该位置:

$oCartsCollection->update(
    array(
        'cartId'=>'98374319ff71dbc3a84b842b7a443cf7',
        'products.productId' => 100343
     ), 
    array('$inc' => array('products.$.quantity'=>1)));

productId在这种情况下,“点”表示法非常适合访问元素。要匹配多个字段,请$elemMatch改用

$oCartsCollection->update(
    array(
        'cartId'=>'98374319ff71dbc3a84b842b7a443cf7',
        'products' => array(
            '$elemMatch' => array(
                'productId' => 100343,
                'name' => 'a'
            )
        )
     ), 
    array('$inc' => array('products.$.quantity'=>1)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将对象数组内的concat数组字段转换为mongodb聚合中的一个字符串字段

mgo,mongodb:从嵌入式结构中查找与一个字段匹配的文档

从MongoDB中仅选择一个字段

MongoDB聚合查找仅返回数组的一个字段

MongoDB将ObjectId从一个字段移动到另一个字段

根据另一个字段的值在MongoDB中投影一个字段

查找来自一个字段的值不为null且不在另一个字段中的MongoDB文档

Mongodb在一个字段上查询取决于另一个字段

如何从MongoDb中另一个字段的子字符串创建字段?

Mongodb $ project:排除子文档中除一个字段外的所有字段,其余保留

C#MongoDb-如何更新嵌套文档中的一个字段?

将对象数组内的concat int数组字段转换为mongodb聚合中的一个字符串字段

使用聚合在每个文档mongodb中增加或减去一个字段

更新文档并创建一个字段,该字段是集合MongoDB中具有相同ID的所有对象的数组

如何基于MongoDB聚合中数组内的另一个字段有条件地为父字段设置值?

MongoDB使用猫鼬填充一个字段并计算嵌套布尔字段中的总“真”值

将第一个数组值复制到MongoDB中的另一个字段

根据Mongodb查询中的一个字段查找最大连续记录数

遍历MongoDB中一个字段中的不同项目

根据MongoDB文档中的另一个字段更新一个字段(在Node.js中使用Mongoose)

在一个字段中按数组查找mongodb中的文档?

仅在mongodb中的字段小于另一个字段时更新

从流星中的Mongodb文档返回一个字段(数组)的内容

如果在mongodb中仅知道一个字段值,则仅选择某些字段

如何使用php在MongoDB文档中添加一个字段?

从Mongodb查询中仅提取一个字段

根据MongoDB中的另一个字段有选择地返回一个字段

基于一个字段的输出的MongoDB计数

如何将一个字段与mongodb中的组合字段进行比较

TOP 榜单

热门标签

归档