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})
所以我知道在 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})