Как создать геопространственный индекс Haystack с помощью драйвера C# 10gen для MongoDB
Пример JS:
db.foo.ensureIndex({ pos : "geoHaystack", type : 1 }, { bucketSize : 1 })
Пример С#, который не работает:
BsonDocument keys = new BsonDocument();
keys.Add("pos", "geoHaystack");
keys.Add("type", "1");
IMongoIndexKeys indexKeys = new IndexKeysDocument(keys);
IndexOptionsDocument indexOptions = new IndexOptionsDocument("bucketSize", new BsonInt32(1));
collection.CreateIndex(indexKeys, indexOptions);
Выдает эту ошибку:
MongoDB.Driver.MongoSafeModeException: безопасный режим обнаружил ошибку «может иметь только 1 подключаемый модуль индекса/неверный шаблон ключа индекса». (Ответ был { "err": "может быть только 1 плагин индекса/неправильный шаблон ключа индекса", "code" : 13007, "n" : 0, "connectionId" : 6, "ok": 1.0 }).
Итак, если я удалю ключ «тип», например:
BsonDocument keys = new BsonDocument();
keys.Add("pos", "geoHaystack");
IMongoIndexKeys indexKeys = new IndexKeysDocument(keys);
IndexOptionsDocument indexOptions = new IndexOptionsDocument("bucketSize", new BsonInt32(1));
collection.CreateIndex(indexKeys, indexOptions);
Я получаю эту ошибку:
MongoDB.Driver.MongoSafeModeException: безопасный режим обнаружил ошибку «другие поля не указаны». (Ответ был { "ошибка": "другие поля не указаны", "код": 13317, "n": 0, "connectionId": 7, "ok": 1.0}).