如何 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"
}
}
])
我面临的主要问题是进行多文档联接。例如,当我尝试 运行 按客户查询订单时,我找不到一种简单的方法来将订单加入客户 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"
}
}
])