如何在 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);