2017-12-13 5 views
0

私は配列フィールドを持つ私のコレクションで文書を持っている:クエリ - MongoDBの

location { 
[0] = 1.99999 
[1] = 3.6544321 
} 

はどのように配列フィールドの値でフィルタすることができますか?

検索クエリでロケーション[0]だけを表示するにはどうすればよいですか?私は検索クエリでのみ場所[0]を表示することができますどのように事前に

Thansk

答えて

1

使用$sliceコレクション

{ "_id" : ObjectId("5a3231d1bf7e914583df4fbf"), "location" : [ 1.99999, 3.6544321 ] } 
{ "_id" : ObjectId("5a3231e1bf7e914583df4fc0"), "location" : [ 23.99999, 43.6343341 ] } 
{ "_id" : ObjectId("5a3231f5bf7e914583df4fc1"), "location" : [ 12.2323, 11.2879731 ] } 

モンゴシェルクエリ

db.collection_name.find({},{"location":{$slice:[0,1]}}); 

結果

{ "_id" : ObjectId("5a3231d1bf7e914583df4fbf"), "location" : [ 1.99999 ] } 
{ "_id" : ObjectId("5a3231e1bf7e914583df4fc0"), "location" : [ 23.99999 ] } 
{ "_id" : ObjectId("5a3231f5bf7e914583df4fc1"), "location" : [ 12.2323 ] } 
の配列

サンプル文書にのみ必要な要素を表示します

どのように配列フィールドの値でフィルタリングできますか?

使用$elemMatch

Mongoのシェルクエリ

db.collection_name.find({location:{$elemMatch:{$gte:12}}}) 

結果

{ "_id" : ObjectId("5a3231e1bf7e914583df4fc0"), "location" : [ 23.99999, 43.6343341 ] } 
{ "_id" : ObjectId("5a3231f5bf7e914583df4fc1"), "location" : [ 12.2323, 11.2879731 ] } 
によって配列要素をフィルタリングします