Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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
Mongodb Mongo 4.2使用findAndModify进行聚合_Mongodb_Mongodb Query_Aggregation Framework - Fatal编程技术网

Mongodb Mongo 4.2使用findAndModify进行聚合

Mongodb Mongo 4.2使用findAndModify进行聚合,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我的文件结构如下: currentListIndex: number availableItems: [], tenant: string 如果租户不存在或availableItems为空,我想创建一个文档,使用预定义的项设置availableItems,并将currentListIndex设置为1,设置租户 如果租户存在且availableItems不为空,我想从列表中弹出一个值 如果租户存在且availableItems为空,我想增加currentListIndex并设置一个数组 如何使用

我的文件结构如下:

currentListIndex: number
availableItems: [],
tenant: string
如果租户不存在或availableItems为空,我想创建一个文档,使用预定义的项设置availableItems,并将currentListIndex设置为1,设置租户

如果租户存在且availableItems不为空,我想从列表中弹出一个值

如果租户存在且availableItems为空,我想增加currentListIndex并设置一个数组

如何使用
find和modify
操作实现这一点

我试过这样的东西,但没用

collection().findAndModify(
    { tenantId: tenant.id, freeIndexes: { $size: { $ne: 0 } } },
    { freeIndexes: 1 },
    {
      $pop: { freeIndexes: 1 },
      $set: { updatedAt: new Date() },
      $setOnInsert: {
        tenantId: tenant.id,
        freeIndexes: rest,
        $inc: { currentList: 1 },
        createdAt: new Date(),
        updatedAt: new Date(),
      },
    },
    { upsert: true, new: false }
  );
您可以尝试使用-这将允许您指定带有条件的更新。