Genel

MongoDB, C# örnek

Seyrek kullandığım ve el altında not olarak tutmak istediğim bir örnektir. DOWNLOAD

mongotest1

MongoClient cli = new MongoClient();
        MongoServer srv;
        MongoDatabase db;
        public Form1()
        {
            InitializeComponent();
            srv= cli.GetServer(); //localhost ise değeri boş bırakılabilir.
            db = srv.GetDatabase("ilk");
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            listView1.Items.Clear();
            var tbl = db.GetCollection<adsoyad>("adlar");
            var query = Query<adsoyad>.Where(f=>f.adi.Contains(textBox1.Text));

            var results = tbl.FindAs<adsoyad>(query).ToList();

            for (int i = 0; i < results.Count; i++)
            {
                ListViewItem li = new ListViewItem();
                li.Text = results[i].adi;
                li.SubItems.Add(results[i].soyadi);
                li.SubItems.Add(results[i].no);
                listView1.Items.Add(li);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var tbl = db.GetCollection<adsoyad>("adlar");
            tbl.Insert(new adsoyad { adi = textBox2.Text, soyadi=textBox3.Text, no=textBox4.Text });
            listele();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            listele();
        }

        void listele()
        {
            listView1.Items.Clear();
            var tbl = db.GetCollection<adsoyad>("adlar");
            var results = tbl.FindAll().ToList();

            for (int i = 0; i < results.Count; i++)
            {
                ListViewItem li = new ListViewItem();
                li.Text = results[i].adi;
                li.SubItems.Add(results[i].soyadi);
                li.SubItems.Add(results[i].no);
                listView1.Items.Add(li);
            }
        }

 

using MongoDB.Bson;

namespace mongotest
{
    public class adsoyad
    {
        public ObjectId Id { get; set; }
        public string adi { get; set; }
        public string soyadi { get; set; }
        public string no { get; set; }
    }
}

Bazı shell komutları:

function name(/*parametreler*/) {
	var doc= db.adlar.find({adi:"meto"});
	return doc;
}

db.system.js.save(
   {
     _id: "jsProsedurum",
     value : function(x) { return x; }
   }
)

//"function name" iç içe fonksiyonlarda işe yarıyor
// ama prosedur kaydederken verdiğim isimle aktifleştiriliyor ve çalıştırılıyor Bu örnekte "jsProsedurum"

db.loadServerScripts(); //kaydedilen prosedürü önbelleğe alabilmek için.
db.eval("jsProsedurum(/*parametreler*/)");

Basit insert ve update işlemlerine örnek

db.collection.Insert({adi:"deneme"});

db.getCollection('adlar').update(
    //aranan değer
    {
        "adi" : "deneme"
    },
    
    // bulunan dökümanda yapılacak değişiklik. Not: $set girilmezse aranan değer silinir.
    {
        $set:{"soyadi":"testSoyad"}
    },
    
    // seçenekler
    {
        "multi" : false,  // Sadece tek dökümanı güncellemek mi istiyoruz?
        "upsert" : false  // Eğer böyle bir döküman bulunmuyorsa yeni oluştursun mu? 
    }
);

db.adlar.find(
     //where koşulları
     //$in gibi parametreler alır.
     {
        "":""
     },
     //select koşulları
     {
        "":""
     }
);

COLLECTION’LAR ARASINDA İLİŞKİ KURMA.

db.getCollection('apps').insert({"son":db.adlar.find({"adi":"meto"})[0]._id});