2016-01-06 36 views
0

假设我有以下文件集合中:查询数组元素,然后字段中,从MongoDB的

{ 
    "_id":ObjectId("1123562e7c594c12942f"), 
    "figures":[ 
     { 
     "shape":"square", 
     "color":"blue" 
     }, 
     { 
     "shape":"triangle", 
     "color":"black" 
     } 
    ] 
} 

我想使其从阵列"figures"的第二元件选择场"shape"的查询。

使用db.test.find({}, {"figures": {$slice: [2, 1]}})您可以访问的"figures"的第二个元素,但你也从中选择只有领域"shape"

+0

使用'.find()'?不可以。您可以使用'.aggregate()'方法。但最好做这个客户端。 – styvane

+0

我做客户端时遇到的问题是我的实际数组条目的字段是* huge *,这就是为什么我不想查询所有字段 – davalo

回答

1

使用下面的查询

db.test.find({}, {"figures": {$slice: [2, 1]}, "figures.shape": 1}).pretty(); 
相关问题