Javascript Mongodb$inquery
我正在尝试使用Javascript Mongodb$inquery,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,我正在尝试使用$within操作符在mongodb中进行地理空间查询。我有一个集合条目,它有一个位置字段,其中包含: location: { bounds: { south_west: { lat: XX.XXXXXX, lng: XX.XXXXX }, north_east: { lat: XX.XXXXXX, lng: XX.XXXXX } }, center: { lat: XX.XXXXXX, lng: XX.XXXXXX } } 对于我
$within
操作符在mongodb
中进行地理空间查询。我有一个集合条目,它有一个位置字段,其中包含:
location: {
bounds: {
south_west: { lat: XX.XXXXXX, lng: XX.XXXXX },
north_east: { lat: XX.XXXXXX, lng: XX.XXXXX }
},
center: {
lat: XX.XXXXXX,
lng: XX.XXXXXX
}
}
对于我的查询,我希望获得所有位置的location.center
都在google.maps
对象的范围内。我有这样的想法:
query = {}
var southWest = map.getBounds().getSouthWest();
southWest = [southWest.lat(), southWest.lng()];
var northEast = map.getBounds().getNorthEast();
northEast = [northEast.lat(), northEast.lng()];
query["location.center"] = { $within: { $box: [southWest, northEast] } }
但我总是得到
Exception from Meteor.flush: Error: Unrecognized key in selector: $within
at Error (<anonymous>)
at Function.LocalCollection._exprForConstraint (http://localhost:3000/packages/minimongo/selector.js?2373a18a9a4640513e41d7850f17f62f76b7c589:559:11)
at Function.LocalCollection._exprForOperatorTest (http://localhost:3000/packages/minimongo/selector.js?2373a18a9a4640513e41d7850f17f62f76b7c589:468:36)
at Function.LocalCollection._exprForKeypathPredicate (http://localhost:3000/packages/minimongo/selector.js?2373a18a9a4640513e41d7850f17f62f76b7c589:387:34)
at Function.LocalCollection._exprForSelector (http://localhost:3000/packages/minimongo/selector.js?2373a18a9a4640513e41d7850f17f62f76b7c589:307:36)
at Function.LocalCollection._compileSelector (http://localhost:3000/packages/minimongo/selector.js?2373a18a9a4640513e41d7850f17f62f76b7c589:284:24)
at new LocalCollection.Cursor (http://localhost:3000/packages/minimongo/minimongo.js?7f5131f0f3d86c8269a6e6db0e2467e28eff6422:71:39)
at LocalCollection.find (http://localhost:3000/packages/minimongo/minimongo.js?7f5131f0f3d86c8269a6e6db0e2467e28eff6422:57:10)
at _.extend.find (http://localhost:3000/packages/mongo-livedata/collection.js?3ef9efcb8726ddf54f58384b2d8f226aaec8fd53:155:34)
at Template.feed.feed_items (http://localhost:3000/client/modules/js/feed.js?5ed30ddbd861944b636dbe03c13cc80421258a5b:129:17)
我是否可以防止引号在和$框选择器中缠绕在
$周围?我相信这就是我的异常被抛出的地方 引号不是问题,这只是有效的JSON。问题是minimongo还没有在内部实现$。Matt Debergalis(2012年10月23日):
最近《流星谈话》的流量让我想起了minimongo
改善和扩展的健康愿望列表
[……]
- $near、$within和$maxDistance李>
在具有“真正的”mongodb访问权限的服务器上执行此操作可能会更好,但如果客户端存储没有相同的功能,我不确定这是如何工作的
。也许您应该尝试自己实现这个选择器并发送一个pull请求?:) 引号不是问题,这只是有效的JSON。问题是minimongo还没有在内部实现$。Matt Debergalis(2012年10月23日):
最近《流星谈话》的流量让我想起了minimongo
改善和扩展的健康愿望列表
[……]
- $near、$within和$maxDistance李>
在具有“真正的”mongodb访问权限的服务器上执行此操作可能会更好,但如果客户端存储没有相同的功能,我不确定这是如何工作的
。也许您应该尝试自己实现这个选择器并发送一个pull请求?:) 这可能是一个老问题,但为了防止有人再次访问此问题,您可以使用此问题对minimongo进行查询:
locations.find(
{ "location.lng" : {
"$gt" : bottomLeftLng,
"$lt": topRightLng
},
"location.lat": {
"$gt" : bottomLeftLat,
"$lt": topRightLat
}
}
)
这可能是一个老问题,但如果有人再次访问此问题,您可以使用此问题对minimongo进行查询:
locations.find(
{ "location.lng" : {
"$gt" : bottomLeftLng,
"$lt": topRightLng
},
"location.lat": {
"$gt" : bottomLeftLat,
"$lt": topRightLat
}
}
)
在第一次编辑之前就开始了;)感谢大家对minimongoLooks的关注,就像已经有了一个拉取请求:在您进行第一次编辑之前就开始了;)感谢大家对minimongoLooks的关注,就像已经有一个pull请求: