MongoDB 2dsphere/2d 索引默認經緯度範圍 `[-180, 180]`,大地坐標需自定義 `min/max`。C# 官方驅動 `CreateIndex` 當前不直接暴露 `min/max` 選項 (舊版 2d 索引支援),變通方案:直接向 `system.indexes` 集合插入索引定義文檔。
db.places.createIndex({ loc: "2d" }, { min: -500, max: 500 })
var db = client.GetDatabase("mydb");
var indexes = db.GetCollection<BsonDocument>("system.indexes");
var indexDoc = new BsonDocument
{
{ "ns", "mydb.places" },
{ "key", new BsonDocument("loc", "2d") },
{ "name", "loc_2d_custom" },
{ "min", -500 },
{ "max", 500 },
{ "v", 2 } // 索引版本
};
indexes.InsertOne(indexDoc); // 直接寫入系統集合創建索引
var list = db.GetCollection<BsonDocument>("places").Indexes.List().ToList();
foreach (var idx in list) Console.WriteLine(idx.ToJson());