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

C#を使用して特定のドキュメントMongodbにフィールドが存在するかどうかを確認する方法は?

    次のことを試すことができます:

    1. 次のようにTry/Catchを使用します。

      var document = Bundle.Collection().Find(filter); // here is your BsonDocument
      try
         {
            document["fieldNameToCheck"] // if field doesn`t exist it throws KeyNotFoundException. If there are nested objects just follow the pattern: document["fieldName"]["fieldNestedToCheck"]
         }
      catch (Exception ex) when (ex is KeyNotFoundException)
         {
            // your logic for "the field wasn`t found in the document" case
         } 
      
    2. 次のように.Contains()を使用します。

      var exists = document.Contains("fieldNameToCheck");// if field exists it returns true
      // If you need to check the nested fields, you can do as follows:
      var nestedExists = document["fieldName"].ToBsonDocument().Contains("fieldNameToCheck"); // or:
      var nestedExists = document["fieldName"]["nestedFieldNameNextLevel"].ToBsonDocument().Contains("fieldNameToCheck");  // and so on...      
      
    3. また、TryGetElementを使用すると、次の要素を追加で取得できます。

      BsonElement element; // it will contain found element if true for next line
      var exists =  document.TryGetElement("fieldNameToCheck", out element); // returns true if element is found
      

    お役に立てば幸いです




    1. 複数の基準でネストされた配列からオブジェクトを削除する

    2. MongoDBAtlasとMongoDBAtlasforAWSの違いは何ですか

    3. mongodbで子オブジェクトをクエリする方法

    4. MongoParseError:オプションuseCreateIndex、useFindAndModifyはサポートされていません