Mongodb 从子文档数组中仅返回匹配的子文档
我试图只返回具有匹配电子邮件的子文档。我相信我已经按照文件上说的做了。以下是我正在尝试的:Mongodb 从子文档数组中仅返回匹配的子文档,mongodb,mongodb-query,Mongodb,Mongodb Query,我试图只返回具有匹配电子邮件的子文档。我相信我已经按照文件上说的做了。以下是我正在尝试的: function lookupReferral(email) { return getConnection().then(db => db.collection('Referrals').findOne( { emails: {$elemMatch: {name: email}} }, { "em
function lookupReferral(email) {
return getConnection().then(db => db.collection('Referrals').findOne(
{
emails: {$elemMatch: {name: email}}
},
{
"emails.$": 1
}
));
}
下面是一个文档示例(为了简洁起见,我减少了电子邮件数组):
出于某种原因,它返回null(我想这意味着它不存在?),但是如果我删除了我特别想要的内容,那么我将返回整个文档。您可以尝试此方法
db.collection.find({
emails: {
$elemMatch: {
name: "a@ddd.dpp"
}
}
},
{
emails: {
$elemMatch: {
name: "a@ddd.dpp"
}
}
})
请参阅
db.collection('refererals').findOne({emails:{$elemMatch:{name:}abc@gmail.com}},{电子邮件:{$elemMatch:{name:abc@gmail.com“}}})
试试hisnop,不行。当我使用存在于子文档{emails:{$elemMatch:{name:}中的电子邮件时,仍然返回nullazzz@zzz.dk{}},{emails{$elemMatch:{name:azzz@zzz.dk“}}}我试过了,没用。看来我的问题不在这个问题上,那么…我的确切想法。好工具。:)
db.collection.find({
emails: {
$elemMatch: {
name: "a@ddd.dpp"
}
}
},
{
emails: {
$elemMatch: {
name: "a@ddd.dpp"
}
}
})