Mongo findOne节点的函数不返回geomertrty数据

我在尝试让mongo正确返回几何数据时遇到了一些麻烦。

当我直接在mongo shell中运行db.shapes_houses.findOne({ 'properties.IDENTIFCAT': '0373100000004063' }函数时,我得到了我需要的正确结果:

 { "_id" : ObjectId("576bfc6d669adc5c2556676b"), "type" : "Feature", "properties" : { "IDENTIFCAT" : "0373100000004063", "VOETPRINT" : 62.423811 }, "geometry" : { "type" : "Polygon", "coordinates" : [ [ [ 105719.1640625, 515371.03125 ], [ 105715.9921875, 515375.4375 ], [ 105722.84375, 515380.375 ], [ 105725.3359375, 515382.15625 ], [ 105728.5, 515377.75 ], [ 105726.015625, 515375.96875 ], [ 105719.1640625, 515371.03125 ] ] ] } } 

但是,当我通过我的节点应用程序运行db.Object.findOne({ 'properties.IDENTIFCAT': '0373100000004063' }).exec()我没有得到任何几何数据,只有ID,types和属性返回。

有没有人知道为什么这可能会发生? 我正在把头发撕掉。

谢谢!

       

网上收集的解决方案 "Mongo findOne节点的函数不返回geomertrty数据"

NodeJSMongoDB driver使用callbacks来处理查询结果

像这样使用callback,它应该工作

 db.Object.findOne({ 'properties.IDENTIFCAT': '0373100000004063' },function(err,result){ if(!err){ console.log(result) } }) 

解决方法是将typekey选项添加到typekey ,如此处所述。