我是MongoDB的新手。
我想知道是否可以实现这样的目标?
users Collection :
[
{
name : "John",
Gender : "Male",
},
{
name : "Alex",
Gender : "Male",
},
{
name : "Eva",
Gender : "Female",
}
]
db.users.find({Gender : "Male"});
Response :
[
{
name : "John",
Gender : "Male",
isMatchingQuery : true,
},
{
name : "Alex",
Gender : "Male",
isMatchingQuery : true,
},
{
name : "Eva",
Gender : "Female",
isMatchingQuery : false,
}
]
我们能得到这样的结果吗?每个文档都作为响应返回,但是满足查询条件的文档具有添加了值为true的键,而另一些则不满足为false。有可能通过聚合吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
aggregation framework这样的事情是可能的。
它看起来像这样:
db.users.aggregate([
{
$set: { "isMatchingQuery": { $eq: [ "$Gender", "Male" ] } }
}
])
答案 2 :(得分:0)
感谢大家的帮助。有趣的是,在挖掘更多内容时,我发现了另一种方法可以做到这一点。有点黑。
db.users
.aggregate([
{
$project: {
_id: 1,
isMatchingQuery: {$eq: ["$Gender", "Male"] },
name: 1,
},
},
])
如果某人只需要响应中的特定键,则一次为$ set和$ project进行工作。