Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $subtract不使用mongodb中的$set_Javascript_Mongodb_Aggregate - Fatal编程技术网

Javascript $subtract不使用mongodb中的$set

Javascript $subtract不使用mongodb中的$set,javascript,mongodb,aggregate,Javascript,Mongodb,Aggregate,我正在使用以下查询更新mongodb中的文档,但它向我抛出了一个错误,abc中的美元($)前缀字段“$subtract”。$subtract”对存储无效。 const bulkUpdate = arrs.map(arr => { const { val = 0 } = arr return { updateMany: { filter: { date: 20201

我正在使用以下查询更新mongodb中的文档,但它向我抛出了一个错误,
abc中的美元($)前缀字段“$subtract”。$subtract”对存储无效。

const bulkUpdate = arrs.map(arr => {
        const { val = 0 } = arr
        return {
            updateMany: {
                filter: {
                    date: 20201010
                },
                update: {
                    $set: {
                        abc: {
                            $subtract: [val, { $add: [{ $ifNull: ['$a1', 0] }, { $ifNull: ['$b1', 0] } ] }]
                        }
                    },
                },
            },
        }
    })

    if (bulkUpdate.length > 0) {
        return mongoConnection.pool
            .db('test')
            .collection('testTable')
            .bulkWrite(bulkUpdate)
    }
Thank是advance,不是update操作符,因此不能在更新中使用它们(管道更新中除外)

如果您使用的是Mongo 4.2+版,则可以使用管道更新而不是“文档更新”,如下所示:

如果您不是,那么您必须阅读每个文档并将其更新到sepratley版本4.2之前的版本。您在尝试更新时无法访问文档字段。

并且不是更新操作符,因此您不能在更新中使用它们(管道更新中的除外)

如果您使用的是Mongo 4.2+版,则可以使用管道更新而不是“文档更新”,如下所示:


如果您没有,那么您必须阅读每个文档并在4.2版之前对其进行更新。您在尝试更新时无法访问文档字段。

可能您有一个mongodb的早期版本,该版本不允许在更新中使用聚合(4.2版之前)。您可以找到更多信息。可能您有一个mongodb的早期版本,它不允许在更新中使用聚合(4.2之前)。你可以找到更多的信息。
{
    updateMany: {
        filter: {
            date: 20201010
        },
        update: [
            {
                $set: {
                    abc: {
                        $subtract: [val, {$add: [{$ifNull: ['$a1', 0]}, {$ifNull: ['$b1', 0]}]}]
                    }
                }
            }
        ]
    }
}