最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Mongoose与第三级嵌套字段值进行比较

IT培训 admin 8浏览 0评论

Mongoose与第三级嵌套字段值进行比较

我有以下收藏:

我想从collection1一直到集合3和4进行查找,以便在一个查询中比较名称。

例:

collection1.find({
    collection2.collection3.name: req.body.name3,
    collection2.collection4.name: req.body.name4
}).exec()
回答如下:

您需要使用查找,展开和匹配,这是您的问题的未经测试的解决方案

 Model.aggregate([
     {
         $match: {
             _id: req.params.id
             // for object id use
             // _id: mongoose.Types.ObjectId(req.params.id)
         }
     },
        {
          $lookup: {
            from: "collection2",
            localField: "collection2",
            foreignField: "_id",
            as: "Collection2"
          }
        },
        {
            $unwind: "$ColelctionTwo"
        },
        {
          $lookup: {
            from: "collection3",
            localField: "CollectionTwo.collection3",
            foreignField: "_id",
            as: "Collection3"
          }
        },
        {
          $lookup: {
            from: "collection4",
            localField: "CollectionTwo.collection4",
            foreignField: "_id",
            as: "Collection4"
          }
        }
      ]).exec(function(err, result) {
          if(err) {
              // handle here
          }
          if(result) {
              // do something here...
          }
      }

Mongoose与第三级嵌套字段值进行比较

我有以下收藏:

我想从collection1一直到集合3和4进行查找,以便在一个查询中比较名称。

例:

collection1.find({
    collection2.collection3.name: req.body.name3,
    collection2.collection4.name: req.body.name4
}).exec()
回答如下:

您需要使用查找,展开和匹配,这是您的问题的未经测试的解决方案

 Model.aggregate([
     {
         $match: {
             _id: req.params.id
             // for object id use
             // _id: mongoose.Types.ObjectId(req.params.id)
         }
     },
        {
          $lookup: {
            from: "collection2",
            localField: "collection2",
            foreignField: "_id",
            as: "Collection2"
          }
        },
        {
            $unwind: "$ColelctionTwo"
        },
        {
          $lookup: {
            from: "collection3",
            localField: "CollectionTwo.collection3",
            foreignField: "_id",
            as: "Collection3"
          }
        },
        {
          $lookup: {
            from: "collection4",
            localField: "CollectionTwo.collection4",
            foreignField: "_id",
            as: "Collection4"
          }
        }
      ]).exec(function(err, result) {
          if(err) {
              // handle here
          }
          if(result) {
              // do something here...
          }
      }
发布评论

评论列表 (0)

  1. 暂无评论