2017-09-21 4 views
0

Hallo bin ich ein Neuling auf MongoDB und CosmosDB und ich versuche, dies in C#CosmosDB mit MongoDB API

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>(); 

Aber wenn es um die Abfrage auf dem Server läuft bekomme ich diesen Fehler:

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." 

Ich habe festgestellt, dass ich den Header "x-ms-Documentdb-Query-Enable-Scan" zu meiner Anfrage hinzufügen sollte. Aber wie kann ich das machen?

+0

Vielleicht Mongo dosen't wissen, was als 001BC50670101BB8 weniger ist? – BOR4

+0

oh ... verdammt. danke es sollte eq sein und löst das Problem – cpiock

+0

funktioniert es jetzt? – BOR4

Antwort

2

Lösung in Kommentarbereich gefunden:

Abfrage geändert von

builder.Lt("mac", "001BC50670101BB8") 

zu

builder.Eq("mac", "001BC50670101BB8")