sql >> Database >  >> NoSQL >> MongoDB

Hoe Mongo dwingen om leden in kleine letters op te slaan?

Om IMemeberMapConvention te gebruiken, moet u ervoor zorgen dat u uw conventies declareert voordat het mappingproces plaatsvindt. Of verwijder eventueel bestaande toewijzingen en maak nieuwe.

Het volgende is bijvoorbeeld de juiste volgorde om een ​​conventie toe te passen:

        // 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!"},
                               });

Dit is hoe deze voorbeeldconventie werd gedefinieerd:

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
}

Dit zijn de resultaten die naar voren kwamen toen ik deze steekproef uitvoerde. Je zou kunnen zien dat de eigenschap Text uiteindelijk is opgeslagen als "NotText":



  1. Veel tot veel verwijzingen in Mongoose verwijderen

  2. Hoe mongodb groeperen - mapReduce output?

  3. Hoe items in MongoRepository te verwijderen met behulp van queryannotatie?

  4. WAARSCHUWING Fout:Meteor-code moet altijd worden uitgevoerd binnen een Fiber when-call-methode op de server