MongoDB 获取 1 个字段的所有值

MongoDB get all values of 1 field

所以我知道在 mongodb 中,我可以获取所有值然后遍历它们,但我想知道在 mongodb 中是否有一个选项可以只获取某个字段。

例如,假设我的 collection 结构如下:

{_id:
    {
    field1,field2,field3}
    }
{description:
    {
    field1,field2,field3,
    data:{
    field1,field2,field3
    }
    }
    }
{otherdata:
{field1,field2,field3}
}

现在,我需要 description.data.field1 的值,那么有什么关于如何做到这一点的建议吗?

到目前为止,我已尝试使用以下命令:

db.module.collection.description.data.find()
db.module.collection.description.find({'data':1})
db.module.collection.find('description.data.data':1})

但很明显,它们并没有起作用。

有什么建议吗?

首先,您的 JSON 结构不正确。正确的结构应该是:

{
_id:{
    field1: "",
    field2: "",
    field3: ""
},
description:{
    field1: "",
    field2: "",
    field3: "",
    data:{
        field1: "",
        field2: "",
        field3: ""
    }
},
otherdata:{
    field1: "",
    field2: "",
    field3: ""
}
}

现在对于你需要的,你可以使用Projections

像这样:

db.collection.find({}, {description.data.field1: 1})