小编SHI*_*RMA的帖子

仅提取 mongodb 聚合中 $project 中键值对中的值

我正在使用蒙戈3.4

我使用的是mongodb的聚合函数。我的问题是,在 $project 中我的值为

{ $project: {
  "_id": 1,
  "name":1 ,
  ............
  ............
  "partners.address.country": 1,
  "partners.partnerName": 1,
} },
{ $match: matchCondition
}
Run Code Online (Sandbox Code Playgroud)

结果,我得到的价值为

“合作伙伴”:{“地址”:{“国家”:“”}}

我不想要我只是想要它

“合作伙伴”:{“国家”:“”}

我想跳过地址部分。另外,我不想.map在结果之后使用函数,因为$project中有大量数据。有人可以帮忙吗?

我还有一个查询,该查询是 4 个集合的联接(另外 2 个查询我在上面的示例中没有提及)。我想要我的主集合的整个记录​​和其他集合的2-3条记录,所以,我必须在$project中写入每条记录并将其设置为1。有没有一种方法可以让我们跳过写入每条记录& $project 中的每条记录,我们仍然可以在结果中获取该记录吗?请帮我!提前致谢

mongodb node.js mongodb-query aggregation-framework

4
推荐指数
1
解决办法
3301
查看次数

如何在mongodb中使用聚合实现不区分大小写的排序(3.4)

我正在尝试在 MongoDB 中实现排序。但我遇到一个问题,我的排序首先包括大写字母 AZ 文本,然后是小写字母。我不想要他们。我希望排序独立于案例。这是我的查询,

var partnerCollection = [
      from: "courses",
      localField: "_id",
      foreignField: "partnerId",
      as: "courses"
    } },
    {
        $project:
        {
            "_id":1,
            "partnerName":1,
            "phone":1,
            "email":1,
            "courses.courseName": 1,
            "courses.courseType":1,
        }
    },
    {
        $match: findUserDataCondition
    },
    { $sort: { "partnerName" : 1 } },
    { $skip: start },
    { $limit: length }
];
Run Code Online (Sandbox Code Playgroud)

如果我用 PartnerName 排序,我得到的结果为 ABC, DEF, EFG , bcd, cde

我的预期结果是 ABC、bcd、cde、DEF、EFG。请帮助我解决这个问题

sorting mongodb aggregation-framework

3
推荐指数
1
解决办法
2831
查看次数