2017-01-23 70 views
0

我非常喜欢NoSQL的初学者。有人可以帮助我查询所有在我的集合中的“Point”geojson类型的文档吗?MongoDB:查询对象和数组的层数

下面是一个例子文件:

{ 
    "_id" : ObjectId("5886276637ccefbcc5c84db2"), 
    "docId" : "10bc70fb2d709f7f51b6a2cae363c8f46786fb113bc6165fb0d45e24086197fd", 
    "entities" : [ 
     { 
      "geoJson" : { 
       "type" : "Point", 
       "coordinates" : [ 
        "16.44184", 
        "100.34879" 
       ] 
      }, 
      "isNormalised" : false, 
      "confidence" : 1.0, 
      "externalId" : "1ee5f6e691a43e0f34b65f9c95b4443dc9809c496d9c825f251c9883e4bf5e28", 
      "end" : 2746, 
      "subType" : null, 
      "type" : "Location", 
      "begin" : 2740, 
      "value" : "Pichit" 
     } 
    ] 
} 

和在Robomongo视觉:

Robomongo screenshot of document

我迷路因为该阵列的对象(实体)(0),其具有对象(geoJson)有元素(类型)。我已阅读以下内容,虽然他们对他们的答案对我有意义,但似乎无法解决我对我的例子的困惑。

Mongo db - Querying nested array and objects

Querying an array of arrays in MongoDB

我需要什么样的查询,你可以阐述每个级别的解释?

只要是明确的实体阵列可以有任意数量的对象,这样的查询需要检查阵列中的所有对象,不只是“0”作为我n此下面的示例图像:

Example with multiple objects in the array

回答

1

查询将如此简单:

db.collection.find({"entities.geoJson.type": "Point"}); 
+0

谢谢,这个工作完美。我认为我已经过分复杂化了......我很快会将答案标记为答案。我必须等9分钟。 – DMusketeer