mongodb NestJS mongoose聚合$lookup .exec()检查是否没有数据

jogvjijk  于 2023-08-04  发布在  Go
关注(0)|答案(1)|浏览(122)

所以我的目标是当我向数据库发出请求时,检查是否没有数据从数据库返回。
你能帮我吗?谢谢你,谢谢
我的代码:

let rqs: any = this.friendrequestModel
      .aggregate([
        {
          $lookup: {
            from: "users",
            localField: "author",
            foreignField: "_id",
            as: "userdata",
            // pipeline: [
            //   {
            //     $match: {
            //       friend_id: new mongoose.Types.ObjectId(userid)
            //     }
            //   }
            // ],
          },
        },
      ])
      .exec((err, data) => {
        if (err) {
          console.log(err);
        }

        if(!data){
          console.log("No data returned")
        }
      });

字符串

uidvcgyl

uidvcgyl1#

在您的代码中,您正在使用Mongoose执行聚合查询,并且您希望检查是否没有从数据库返回数据。然而,当前使用**if (!data)的方法不会像预期的那样工作,因为即使data**变量为空或不包含任何元素,它也不会是false,并且不会满足条件。
要检查是否没有从数据库返回数据,可以按如下方式修改代码:

let rqs: any = this.friendrequestModel
  .aggregate([
    {
      $lookup: {
        from: "users",
        localField: "author",
        foreignField: "_id",
        as: "userdata",
      },
    },
  ])
  .exec((err, data) => {
    if (err) {
      console.log(err);
      return; // Exit early if there's an error
    }

    if (data.length === 0) {
      console.log("No data returned");
    }
  });

字符串

相关问题