loading...

re: Tutorial: MongoDB With C# The Easy Way! VIEW POST

TOP OF THREAD FULL DISCUSSION
re: Thanks! One more question :P I'm a MongoDB Newbie I have an entity called Zone, with only one property: public int SqlId { get;set; } And I have ...

you can do bulk saves like this:

            var zones = new[] {
                new Zone { SqlId = 1 },
                new Zone { SqlId = 2 }
            };

            DB.Save(zones);

            var search = new Search();
            search.Save();

            search.Zones.Add(zones);

Zones are duplicated in MongoDb. A new document is created for each new SqlId.

i don't really understand your requirement here. do you not want to create two new zone documents?

Thanks for answering, you are awesome :)

no, I don't want to create two new zones.
Zones are like a META table or "Dictionary".

I only have 20 zones, from id = 1 to id = 20

A search could have a combination of these zones.
1, 2
or 1,2,3

I want to create two new Search documents, but I don't want the Zones to be created each time.

for seeding the zone entities once, you can use the migrations feature by first writing a migration class like this:

public class _001_seed_zone_data : IMigration
{
    public void Upgrade()
    {
        var zones = new List<Zone>();

        for (int i = 1; i <= 20; i++)
        {
            zones.Add(new Zone { SqlId = i });
        }

        zones.Save();
    }
}

then on your application startup simply call:

    DB.Migrate();

then you can create your searches like this:

    var wantedZones = new[] { 1, 2, 3 };

    var foundZones = DB.Find<Zone>()
                       .Many(z => wantedZones.Contains(z.SqlId));

    var seach1Zones = foundZones.Where(z => new[] { 1, 2 }.Contains(z.SqlId));
    var search2Zones = foundZones.Where(z => new[] { 1, 2, 3 }.Contains(z.SqlId));

    var search1 = new Search();
    var search2 = new Search();

    DB.Save(new[] { search1, search2 });

    search1.Zones.Add(seach1Zones);
    search2.Zones.Add(search2Zones);

Thanks, you are very cool. I will try it now

here's my test program in case you need to have a look: gist.github.com/dj-nitehawk/8bde0d...

Thank you :) I bought you a coffee for your outstanding help.

This project has a lot of potentials! I will recommend it to fellow C# devs.

you are most welcome. just received the email notification regarding the donation. much appreciated. if you ever need any more help, just go to the github repo and open up a new issue. i'll be more than glad to help. have a great day!

Code of Conduct Report abuse