CosmosDB MongoDB API
CosmosDB with MongoDB API
嗨,我是 MongoDB 和 CosmosDB 的新手,我在 c#
中尝试这样做
MongoClientSettings settings = MongoClientSettings.FromUrl(
new MongoUrl(connectionString)
);
settings.SslSettings =
new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
var mongoClient = new MongoClient(settings);
var mongoDatabase = mongoClient.GetDatabase("MYDATABASE");
var mongoCollection = mongoDatabase.GetCollection<BsonDocument>("MYCOLLECTION");
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Lt("mac", "001BC50670101BB8") & builder.Gte("date", "2016-09-18T00:00:00Z") & builder.Gte("date", "2017-09-22T00:00:00Z");
var query = mongoCollection.Find<BsonDocument>(filter).ToList<BsonDocument>();
但是当它在服务器上运行查询时我得到这个错误:
Errors":["An invalid query has been specified with filters against path(s) that are not range-indexed. Consider adding allow scan header in the request."
我发现我应该将 "x-ms-documentdb-query-enable-scan" header 添加到我的请求中。但是我该怎么做呢?
评论区找到的解决方案:
查询从
更改
builder.Lt("mac", "001BC50670101BB8")
到
builder.Eq("mac", "001BC50670101BB8")
嗨,我是 MongoDB 和 CosmosDB 的新手,我在 c#
中尝试这样做MongoClientSettings settings = MongoClientSettings.FromUrl(
new MongoUrl(connectionString)
);
settings.SslSettings =
new SslSettings() { EnabledSslProtocols = SslProtocols.Tls12 };
var mongoClient = new MongoClient(settings);
var mongoDatabase = mongoClient.GetDatabase("MYDATABASE");
var mongoCollection = mongoDatabase.GetCollection<BsonDocument>("MYCOLLECTION");
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Lt("mac", "001BC50670101BB8") & builder.Gte("date", "2016-09-18T00:00:00Z") & builder.Gte("date", "2017-09-22T00:00:00Z");
var query = mongoCollection.Find<BsonDocument>(filter).ToList<BsonDocument>();
但是当它在服务器上运行查询时我得到这个错误:
Errors":["An invalid query has been specified with filters against path(s) that are not range-indexed. Consider adding allow scan header in the request."
我发现我应该将 "x-ms-documentdb-query-enable-scan" header 添加到我的请求中。但是我该怎么做呢?
评论区找到的解决方案:
查询从
更改builder.Lt("mac", "001BC50670101BB8")
到
builder.Eq("mac", "001BC50670101BB8")