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

モノラルでc#ドライバーを使用してmongoコレクションの2つのフィールドを比較する

    実際、それはそれほど単純ではありません。これは、:

    などのクエリで可能になるはずです。
    var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
    

    しかし、残念ながら、MongoDriverはこの式を変換できませんでした。すべてのユーザーにクエリを実行し、クライアント側でフィルタリングすることができます。

    var users = collection.Find(Builders<User>.Filter.Empty)
                          .ToEnumerable()
                          .Where(user => user.LastModifiedAt > user.LastSyncedAt)
                          .ToList();
    

    または、MongoDb自体が実行できるため、jsonクエリを送信します。

    var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
    var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
                          .ToList();
    

    そして、はい、Id-プロパティが必要です。モデルクラスのプロパティです。最初に言及していません。質問に投稿されていないのに、Idプロパティがあると思ったからです。



    1. pymongo:MongoClientまたはConnection

    2. ドキュメントを追加すると、MongoDBカーソルは自動拡張されますか

    3. 再インストール後も27017を待っているモンゴ

    4. Node.jsで機能しない外部モジュールのスキーマ