我的收藏结构如下图所示:
我正在尝试查询每个引擎中的字段“name”:
db.getCollection('scan').find({},
{
"engines": {
"$elemMatch": {
"name": 1
}
}
}
)
但返回的结果只包含“_id”:
有谁知道为什么? 谢谢!
答案 0 :(得分:2)
我正在尝试查询每个引擎中的字段“name”:
假设这个数据样本:
driver.findElement(By.xpath("//th[@data-title='Package Detail']//span[@class='k-icon k-filter']")).click();
您可以使用投影运算符中的点符号查询所有嵌入字段db.collection.insert([
{ engines: { ahnlab: { name: "x", value: "1" }}},
{ engines: { ahnlab: { name: "y", value: "2" }}},
])
:
name
> db.collection.find({},{"engines.ahnlab.name": 1, "_id":0 })
{ "engines" : { "ahnlab" : { "name" : "x" } } }
{ "engines" : { "ahnlab" : { "name" : "y" } } }
将指示MongoDB保留("engines.ahnlab.name": 1
)嵌入的名称字段; 1
将指示MongoDB 不保留"_id": 0
字段。如果您需要将输出作为平面数据结构,则应使用聚合框架和$project
operator来重写文档:
_id