猫鼬:深度搜索
Mongoose: deep search
我有一个架构 returns 如下:
"_id": "61d4791786dbde4bb0ecd622",
"members": [
{
"score": 75,
"_id": "61d4791886dbde4bb0ece492",
"userId": "60df085d4729322a7464babc",
"penalties": [
{
"_id": "61d4791886dbde4bb0ece493",
"penaltyScore": -10
},
{
"_id": "61d4791886dbde4bb0ece494",
"penaltyScore": -15
}
]
},
]
我想通过userId
查找寄存器。我尝试使用:
ManeuverStatistics.find(userId && { members: { $in: userId } }).exec(
(err, data) => {
if (err) {
res.status(500).send({ message: "failed!" });
return;
}
res.status(200).send(data);
}
);
但它没有用...我如何进行深度搜索以找到与 members
数组中的 userId
匹配的内容?
我花了几个小时试图解决它,但我找到了一个可能的解决方案。为了帮助任何其他程序员,这是我的方法:
ManeuverStatistics.find(userId && { "members.userId": userId }).exec(
(err, data) => {
if (err) {
res.status(500).send({ message: "failed!" });
return;
}
res.status(200).send(data);
}
);
基本上,我可以使用 members.userId
.
访问对象内部的键 userId
我有一个架构 returns 如下:
"_id": "61d4791786dbde4bb0ecd622",
"members": [
{
"score": 75,
"_id": "61d4791886dbde4bb0ece492",
"userId": "60df085d4729322a7464babc",
"penalties": [
{
"_id": "61d4791886dbde4bb0ece493",
"penaltyScore": -10
},
{
"_id": "61d4791886dbde4bb0ece494",
"penaltyScore": -15
}
]
},
]
我想通过userId
查找寄存器。我尝试使用:
ManeuverStatistics.find(userId && { members: { $in: userId } }).exec(
(err, data) => {
if (err) {
res.status(500).send({ message: "failed!" });
return;
}
res.status(200).send(data);
}
);
但它没有用...我如何进行深度搜索以找到与 members
数组中的 userId
匹配的内容?
我花了几个小时试图解决它,但我找到了一个可能的解决方案。为了帮助任何其他程序员,这是我的方法:
ManeuverStatistics.find(userId && { "members.userId": userId }).exec(
(err, data) => {
if (err) {
res.status(500).send({ message: "failed!" });
return;
}
res.status(200).send(data);
}
);
基本上,我可以使用 members.userId
.
userId