无法将explain()与聚合管道一起使用

问题描述 投票:0回答:1

在下面的代码中,当我尝试使用 eplain() 时出现此错误,“MongoInvalidArgumentError:选项“explain”不能用于带有 writeConcern 的聚合调用”。但是为什么我做错了?请帮助我实现此目的, 预先感谢......😊😊

const result1 = await this.qcInspectionModel.aggregate([
  {
    $match: {
      $and: [
        startDateQuery,
        endDateQuery,
        statusQuery,
        businessUnitFilterQuery,
        { isDeleted: false },
        { isSLCMQcInspection: true },
      ],
    },
  },
  {
    $lookup: {
      from: 'mastercommodities',
      localField: 'commodityId',
      pipeline: [
        {
          $project: {
            name: 1,
          },
        },
      ],
      foreignField: '_id',
      as: 'commodityData',
    },
  },
  {
    $unwind: '$commodityData',
  },
  {
    $lookup: {
      from: 'commodityvariants',
      localField: 'commodityVariantId',
      pipeline: [
        {
          $project: {
            name: 1,
          },
        },
      ],
      foreignField: '_id',
      as: 'commodityVariantData',
    },
  },
  {
    $unwind: '$commodityVariantData',
  },
  {
    $lookup: {
      from: 'businessunits',
      localField: 'businessUnitId',
      pipeline: [
        {
          $lookup: {
            from: 'businesses',
            localField: 'businessId',
            foreignField: '_id',
            as: 'businessClientName',
          },
        },
        {
          $unwind: '$businessClientName',
        },
        {
          $project: {
            name: 1,
            businessClientName: '$businessClientName.displayName',
          },
        },
      ],
      foreignField: '_id',
      as: 'businessUnitData',
    },
  },
  {
    $unwind: {
      path: '$businessUnitData',
      preserveNullAndEmptyArrays: true,
    },
  },
  {
    $lookup: {
      from: 'users',
      localField: 'createdBy',
      foreignField: '_id',
      as: 'userData',
      pipeline: [
        {
          $project: {
            firstName: 1,
            lastName: 1,
            _id: 0,
            name: { $concat: ['$firstName', ' ', '$lastName'] },
          },
        },
      ],
    },
  },
  {
    $unwind: {
      path: '$userData',
      preserveNullAndEmptyArrays: true,
    },
  },
  {
    $match: {
      $and: [
        commoditySearchQuery,
        variantSearchQuery,
        generalSearchQuery,
        cidNumberSearchQuery,
        lotNoSearchQuery
      ],
    },
  },
  {
    $sort: {
      createdAt:
        filters.sortOrder && filters.sortOrder != SortOrder.Ascending
          ? SortOrder.Descending
          : SortOrder.Ascending,
    },
  },
  {
    $project: {
      _id: 1,
      status: 1,
      commodityData: 1,
      commodityDetail: 1,
      commodityVariantData: 1,
      createdAt: 1,
      qcId: 1,
      sampleName: 1,
      businessUnitData: 1,
      userData: 1,
      location: 1,
      middlewareStatus: 1,
    },
  },
  {
    $facet: {
      records: [
        { $skip: (filters.pageNumber - 1) * filters.count },
        { $limit: filters.count * 1 },
      ],
      total: [{ $count: 'count' }],
    },
  }
]).explain();

Lorem ipsum dolor sat amet,consectetur adipiscing elit,sed do eiusmod tempor incididunt ut laboure et dolore magna aliqua。 Ut enim ad minim veniam, quis nostrud exeritation ullamco labouris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 Exceeur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est labourum.

mongodb mongoose nestjs mean-stack mern
1个回答
0
投票

使用这个:

db.collection.aggregate([
   {...}
   ], 
   { explain: true }
)

db.collection.explain().aggregate([
   {...}
])
© www.soinside.com 2019 - 2024. All rights reserved.