【发布时间】:2021-11-18 03:54:24
【问题描述】:
在 MongoDB 中,我有一个消息集合(在下面找到):
我有兴趣通过 id 查询父文档,并说过滤 contactedNumberMessages 以仅包含传入消息(方向为“in”的消息)所以我用 Mongoose 编写了以下代码,但是 contactedNumberMessages 是 @987654323 @ 在返回的数据中,关于我为什么得到 null 的任何线索?谢谢
Messages.aggregate([
{
$match: {
_id: id
}
},
{
$project: {
messaging: {
ourNumber: 1,
messages: {
contact: 1,
contactedNumberMessages: {
$filter: {
input: "$contactedNumberMessages",
as: "message",
cond: {
$eq: ["$$message.direction", "out"]
}
}
}
}
}
}
}
]);
{
"_id": {
"$oid": "612f4e32aa56064f1608c2eb"
},
"messaging": [
{
"ourNumber": "+15123568549",
"messages": [
{
"contact": "+21629000111",
"contactedNumberMessages": [
{
"direction": "out",
"content": "Hello!",
"when": {
"$date": "2021-09-23T23:00:00.000Z"
},
"nature": "SMS"
},
{
"direction": "in",
"content": "Hi!",
"when": {
"$date": "2021-09-23T23:00:00.000Z"
},
"nature": "SMS"
}
]
}
]
}
]
}
【问题讨论】:
标签: mongodb filter projection