如何 return 另一个集合的数据与任何其他集合查询?
How to return another collection's data with any other collection queried?
我在 mongo User
和 Trainer
中实现了两个集合。
User
集合包含 ID、姓名、电子邮件和描述。
Trainer
包含 id、coursesMade 和 trainerId。这里的 trainerId 是 User 集合中的 id
示例:
//User collection
{
id:123,
name: "alice",
email: "alice@example.com",
description: "some text"
}
//Trainer collection
{
id:134,
coursesMade: 3,
trainerId: 123
}
现在我有一些功能可以为我提供培训师列表。
我想查询 returns me trainer 集合以及该 trainerId 的用户参考。
预期输出:
{
id:134,
coursesMade: 3,
trainerId: 123,
trainerDetails: {
id: 123,
name: "alice",
email: "alice@example.com",
description: "some text"
}
}
作为初学者,我不知道如何在 mongo 中实现它,
任何一般的想法将不胜感激。
您需要使用查找
db.trainer.aggregate([
{
"$lookup": {
"from": "user",
"localField": "trainerId",
"foreignField": "id",
"as": "trainers"
}
}
])
我在 mongo User
和 Trainer
中实现了两个集合。
User
集合包含 ID、姓名、电子邮件和描述。
Trainer
包含 id、coursesMade 和 trainerId。这里的 trainerId 是 User 集合中的 id
示例:
//User collection
{
id:123,
name: "alice",
email: "alice@example.com",
description: "some text"
}
//Trainer collection
{
id:134,
coursesMade: 3,
trainerId: 123
}
现在我有一些功能可以为我提供培训师列表。 我想查询 returns me trainer 集合以及该 trainerId 的用户参考。
预期输出:
{
id:134,
coursesMade: 3,
trainerId: 123,
trainerDetails: {
id: 123,
name: "alice",
email: "alice@example.com",
description: "some text"
}
}
作为初学者,我不知道如何在 mongo 中实现它, 任何一般的想法将不胜感激。
您需要使用查找
db.trainer.aggregate([
{
"$lookup": {
"from": "user",
"localField": "trainerId",
"foreignField": "id",
"as": "trainers"
}
}
])