sql >> データベース >  >> NoSQL >> MongoDB

MongoDB C#ドライバーで生成されたスクリプトを取得します

    編集:ドライバーの2.0.1バージョンの時点で、FindFluent IMongoCollection.Findから返されたオブジェクト 適切なToStringがあります これには、フィルターだけでなく、投影、並べ替えなども含まれます(該当する場合)。

    だから、これのために:

    var findFluent = collection.
        Find(x => hashValues.Contains(x.UrlHash) && x.ProductTopic == topicId,
            new FindOptions {MaxTime = TimeSpan.FromSeconds(1)}).
        Project(x => x.UrlHash).
        Sort(Builders<ProductMapping>.Sort.Descending(x => x.ProductTopic)).
        Skip(6).
        Limit(7);
    
    Console.WriteLine(findFluent);
    

    出力は次のようになります:

    find({ "UrlHash" : { "$in" : [4, 5, 6, 7, 8] }, "ProductTopic" : 200 }, { "UrlHash" : 1, "_id" : 0 }).
    sort({ "ProductTopic" : -1 }).
    skip(6).
    limit(7).
    maxTime(1000)
    

    さて、あなたはすでに検索を行っていることを知っているので、クエリがどのように見えるかを知りたいと思います。

    IFindFluent.Filterを使用すると、コードから直接簡単に行うことができます。 :

    BsonDocument filterDocument = findFluent.Filter.Render(
        collection.DocumentSerializer,
        collection.Settings.SerializerRegistry);
    
    Console.WriteLine(filterDocument);
    

    あなたの場合の出力(hashValuesに依存します およびtopicId もちろん):

    { "UrlHash" : { "$in" : [4, 5, 6, 7, 8, 9] }, "ProductTopic" : 200 }
    


    1. MongoDB3.2認証に失敗しました

    2. MongoDB Inserts / secを高速化する方法は?

    3. .NET Core3のRedisCacheでは、Stack Exchangeパッケージを使用する必要がありますか?

    4. MongoDB $ filter