如何在 C++ 中使用 MongoDB 地理空间索引
How to use MongoDB GeoSpatial Index in C++
在python中,pymongo 为MongoDB GeoSpatial 索引提供了很好的支持。但是,对于 C++,当我在 C++ 中使用 mongocxx 时,我对语法有点困惑。
例如,在python(pymongo)中我使用了
cursor = db.colection.find(
{
"loc": {
"$near": [lon, lat]
}
}
).limit(10)
获取给定位置最近的 10 个项目。但是我怎样才能在 C++ 中做同样的事情呢?
我试过了:
mongocxx::cursor cursor = coll.find(document{} << "loc" << open_document <<
"$near" << [lon, lat]
<< close_document << finalize);
我不确定这是否正确,而且我未能设置结果数。
任何人都可以给我一些关于 C++ 中的地理空间索引的说明吗? Documents/examples 将受到高度赞赏。
非常感谢。
您可以使用 mongocxx::options::find::limit
. Check also mongocxx::collection::find
。以下应该有效:
mongocxx::options::find opts;
opts.limit(10);
mongocxx::cursor cursor = coll.find(document{} << "loc" << open_document
<< "$near" << bsoncxx::builder::stream::open_array
<< lon << lat << bsoncxx::builder::stream::close_array
<< close_document << finalize, opts);
在python中,pymongo 为MongoDB GeoSpatial 索引提供了很好的支持。但是,对于 C++,当我在 C++ 中使用 mongocxx 时,我对语法有点困惑。
例如,在python(pymongo)中我使用了
cursor = db.colection.find(
{
"loc": {
"$near": [lon, lat]
}
}
).limit(10)
获取给定位置最近的 10 个项目。但是我怎样才能在 C++ 中做同样的事情呢?
我试过了:
mongocxx::cursor cursor = coll.find(document{} << "loc" << open_document <<
"$near" << [lon, lat]
<< close_document << finalize);
我不确定这是否正确,而且我未能设置结果数。
任何人都可以给我一些关于 C++ 中的地理空间索引的说明吗? Documents/examples 将受到高度赞赏。
非常感谢。
您可以使用 mongocxx::options::find::limit
. Check also mongocxx::collection::find
。以下应该有效:
mongocxx::options::find opts;
opts.limit(10);
mongocxx::cursor cursor = coll.find(document{} << "loc" << open_document
<< "$near" << bsoncxx::builder::stream::open_array
<< lon << lat << bsoncxx::builder::stream::close_array
<< close_document << finalize, opts);