这是我的文档结构:
"event": {
"attendants": {
"seekers": [
{
"$oid": "5bcdabd27e51de001576d289"
},
{
"$oid": "5bc9b39c1a48dd0d7d521924"
},
],
"employers": [
{
"id": {
"$oid": "5bcda6477e51de001576d287"
},
"boothVisits": []
},
{
"id": {
"$oid": "5bd0787e0f64cd001563ddbf"
},
"boothVisits": [
{
"$oid": "5bcda6477e51de001576d287"
},
{
"$oid": "5bd0787e0f64cd001563ddbf"
},
]
},
]
},
}
我需要选择雇主表中当前用户ID的事件。但是那里也有boothVisits,它阻止了简单的in
检查。这就是我试图做的
Event.find().where('attendants.employers.$.id').equals(req.user._id).catch(e => console.log(e)),
但是它不起作用。我想念什么?我假设我以错误的方式使用了$
。
答案 0 :(得分:1)
如果要退回整个文档,则无需使用$
。
只需如下使用:
const mongoose = require('mongoose');
Event.find({"attendants.employers.id": mongoose.Types.ObjectId(req.user._id)}),
这将检查雇主数组下的id
(如果找到),则将退回整个事件。