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

mongoにメンバーを小文字で格納するように強制するにはどうすればよいですか?

    IMemeberMapConventionを使用するには、マッピングプロセスを実行する前に、必ず規則を宣言する必要があります。または、オプションで既存のマッピングを削除して、新しいマッピングを作成します。

    たとえば、規則を適用する正しい順序は次のとおりです。

            // first: create the conventions
            var myConventions = new ConventionPack();
            myConventions.Add(new FooConvention());
    
            ConventionRegistry.Register(
               "My Custom Conventions",
               myConventions,
               t => true);
    
            // only then apply the mapping
            BsonClassMap.RegisterClassMap<Foo>(cm =>
            {
                cm.AutoMap();
            });
    
            // finally save 
            collection.RemoveAll();
            collection.InsertBatch(new Foo[]
                                   {
                                       new Foo() {Text = "Hello world!"},
                                       new Foo() {Text = "Hello world!"},
                                       new Foo() {Text = "Hello world!"},
                                   });
    

    このサンプル規則の定義方法は次のとおりです。

    public class FooConvention : IMemberMapConvention
    
        private string _name = "FooConvention";
    
        #region Implementation of IConvention
    
        public string Name
        {
            get { return _name; }
            private set { _name = value; }
        }
    
        public void Apply(BsonMemberMap memberMap)
        {
            if (memberMap.MemberName == "Text")
            {
                memberMap.SetElementName("NotText");
            }
        }
    
        #endregion
    }
    

    これらは、このサンプルを実行したときに得られた結果です。 Textプロパティが「NotText」として保存されていることがわかります。



    1. javascriptでMongoDBIDを短縮します

    2. mongo export SyntaxError:欠落;ステートメントの前@(shell):1:14

    3. プロパティを介してレプリカセットを使用するようにspring-data-mongodbを構成する方法

    4. mongodbで$lookupを使用して複数のコレクションに参加する方法