gpt4 book ai didi

database - 如何仅查找mongo中的特定字段

转载 作者:可可西里 更新时间:2023-11-01 09:20:37 25 4
gpt4 key购买 nike

如何只加入特定字段?使用 $lookup 时,mongo 返回整个文档。

假设这是我的数据:

用户

[
{ id: 0, name: "Bob", adj: 1 },
{ id: 1, name: "Will", adj: 2 },
]

形容词

[
{ id: 1, name: "awesome" },
{ id: 2, name: "cool" },
]

我想做一个查找,所以响应应该是这样的:

[
{ id: 0, name: "Bob", adj: 1, adj_value: "awesome" },
{ id: 1, name: "Will", adj: 2, adj_value: "cool" },
]

这是我的尝试

db.collection('users').aggregate([
{
$lookup: {
from: 'adjectives',
localField: 'adj',
foreignField: 'name',
as: 'adjective_value'
},
},
])

但是它将整个文档插入到用户文档中。如何在响应中只获取单个字段?

最佳答案

$project 管道中,您可以从查找集合对象中获取单个字段。

db.collection('users').aggregate([
{
$lookup: {
from: 'adjectives',
localField: 'adj',
foreignField: 'id',
as: 'adjective_value'
},
},
{$unwind:'$adjective_value'},
{$project:{
adjective_value:'$adjective_value.name',
id: 1,
name: 1,
adj: 1
}}
])

关于database - 如何仅查找mongo中的特定字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49054448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com