Как создать индекс геопространственного сена , используя драйвер 10gen C # для MongoDB
JS Пример:
db.foo.ensureIndex({ pos : "geoHaystack", type : 1 }, { bucketSize : 1 })
C # Пример, который не работает:
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: Safemode обнаружил ошибку «может иметь только 1 индексный плагин / неправильный шаблон ключа индекса». (Ответ был {"err": "может иметь только 1 индексный плагин / неверный шаблон ключа индекса", "code": 13007, "n": 0, "connectionId": 6, "ok": 1.0}).
Так что, если я удалю клавишу 'type', вот так:
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: Safemode обнаружил ошибку «другие поля не указаны». (Ответ был {"err": "другие поля не указаны", "code": 13317, "n": 0, "connectionId": 7, "ok": 1.0}).