2017-09-21 4 views
0

Salut, je suis un débutant sur MongoDB et CosmosDB et j'essaie de cela en C#CosmosDB avec 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>(); 

Mais quand il exécute la requête sur le serveur je reçois cette erreur:

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

J'ai trouvé que je devrais ajouter l'en-tête «x-ms-documentdb-query-enable-scan» à ma demande. Mais comment je peux faire ça?

+0

Peut-être savoir ce que Mongo doesnt est inférieure à 001BC50670101BB8? – BOR4

+0

oh ... putain. merci cela devrait être eq et résout le problème – cpiock

+0

ça marche maintenant? – BOR4

Répondre

2

Solution trouvée dans la section commentaire:

changé de requête de

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

à

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