Mongoose:根据另一个集合中的值过滤集合
Mongoose: Filter collection based on values in another collection
考虑包含另一个集合的 ID 数组的文档,我如何使用 mongoose 查找应用基于相关集合的过滤器的文档?
我找不到我的错误
Installation.aggregate(
[
// Stage 1
{
$lookup: {
from: "users",
localField: "_id",
foreignField: "_id",
as: "Users"
}
},
// Stage 2
{
$unwind: {
path: "$Users"
}
},
// Stage 3
{
$match:
{"Users.Email1" : "test@test.com"}
},
{
$sort: { _id: -1 }
},
{
$limit: 10
}
]
,function (err, installations) {
console.log(installations); //<<<<< Empty
/*
Installation.populate( 'Parent', '_id Email1','Company'), function(err,results) {
Installation.count(filter).exec(function (err, count) {
res.send({ success: true, results: installations, total: count });
});
};
*/
});
提前致谢
安德里亚
您可以使用聚合查询来做到这一点:
db.collectionA.aggregate(
// Pipeline
[
// Stage 1
{
$lookup: {
from: "collectionB",
localField: "_id",
foreignField: "_id",
as: "collectionBData"
}
},
// Stage 2
{
$unwind: {
path : "$collectionBData"
}
},
// Stage 3
{
$match: {
"collectionBData.email": "your@email.address"
}
},
]
);
希望这能解决您的问题。
此外,在 Mongo 中,我们使用命名约定作为 集合而不是 table 和 _id 而不是 id.
考虑包含另一个集合的 ID 数组的文档,我如何使用 mongoose 查找应用基于相关集合的过滤器的文档? 我找不到我的错误
Installation.aggregate(
[
// Stage 1
{
$lookup: {
from: "users",
localField: "_id",
foreignField: "_id",
as: "Users"
}
},
// Stage 2
{
$unwind: {
path: "$Users"
}
},
// Stage 3
{
$match:
{"Users.Email1" : "test@test.com"}
},
{
$sort: { _id: -1 }
},
{
$limit: 10
}
]
,function (err, installations) {
console.log(installations); //<<<<< Empty
/*
Installation.populate( 'Parent', '_id Email1','Company'), function(err,results) {
Installation.count(filter).exec(function (err, count) {
res.send({ success: true, results: installations, total: count });
});
};
*/
});
提前致谢 安德里亚
您可以使用聚合查询来做到这一点:
db.collectionA.aggregate(
// Pipeline
[
// Stage 1
{
$lookup: {
from: "collectionB",
localField: "_id",
foreignField: "_id",
as: "collectionBData"
}
},
// Stage 2
{
$unwind: {
path : "$collectionBData"
}
},
// Stage 3
{
$match: {
"collectionBData.email": "your@email.address"
}
},
]
);
希望这能解决您的问题。
此外,在 Mongo 中,我们使用命名约定作为 集合而不是 table 和 _id 而不是 id.