如何 trim 特定长度的值,然后在 mongoDB 中应用查找

How to trim a value by a particular length and then apply lookUp in mongoDB

我面临的主要问题是进行多文档联接。例如,当我尝试 运行 按客户查询订单时,我找不到一种简单的方法来将订单加入客户 ID 上的客户,因为在订单对象中,客户 ID 的开头附加了 _user$用户 ID,我不知道如何在聚合管道中处理 运行。

例如;在订单对象中,客户定义为 _p_customer:"_User$8qXjk40eOd" 但是在用户 table 中,_id 只是 8qXjk40eOd,因此图表中的默认查找功能无法匹配两者。

注意:我正在使用解析服务器,它以上述方式存储指针。

This is how the data is being stored in the mongoDB order collection.

上图中的customer字段是指向_User集合的指针

这就是数据存储在 mongoDB _User 集合中的方式。

我的要求是编写 mongo 查询来查找所有用户及其相关订单计数。我无法这样做,因为我不知道如何从订单行中删除 _User$ 并通过 _id 将其加入 _User。

在汇总查找之前 substr 您要在 $lookup

中使用的字段
db.collection.aggregate([
{
   $addFields :{
       nUser : { $substr: [ "$_p_customer", 6, -1 ] } // _User$ has 6 characters
   }
},
{
   $lookup :{
       from:"usersCollection",
       localField:"nUser",
       foreignField : "_id",
       as : "UserObject"
   }
}
])