قواعد بيانات MongoDB في دلفي
#3
[صورة: MongoDB.png]

توجد مكتبات كثيرة للتعامل مع هذا النوع من قواعد البيانات بشكل يدوي وليس ربط بالمكونات كما اوضحت ببداية المنشور
على سبيل المثال لا الحصر هذه مكتبة

https://github.com/grijjy/DelphiMongoDB

للاتصال بقاعدة البيانات

كود :
var   Client: IgoMongoClient;   Database: IgoMongoDatabase;   Collection: IgoMongoCollection; begin   Client := TgoMongoClient.Create('localhost');   Database := Client.GetDatabase('test');   Collection := Database.GetCollection('restaurants'); end;

لاضافة مستند او سجل

كود :
var   Line: String;   Doc: TgoBsonDocument;   DataSet: TList<TgoBsonDocument>;   Collection: IgoMongoCollection; begin   ..Initialization of Stream, Dataset and Collection not shown here..   Reader := TStreamReader.Create(Stream, TEncoding.UTF8);   while (not Reader.EndOfStream) do   begin     Line := Reader.ReadLine;     Doc := TgoBsonDocument.Parse(Line);     Dataset.Add(Doc);   end;   Collection.InsertMany(Dataset); end;


لاضافة مستند او سجل بشكل يدوي

كود :
procedure TTestInsertPrimer.InsertADocument; var   Doc: TgoBsonDocument;   Collection: IgoMongoCollection; begin   Doc := TgoBsonDocument.Create()     .Add('address', TgoBsonDocument.Create()                       .Add('street', '2 Avenue')                       .Add('zipcode', '10075')                       .Add('building', '1480')                       .Add('coord', TgoBsonArray.Create([73.9557413, 40.7720266])))     .Add('borough', 'Manhattan')     .Add('cuisine', 'Italian')     .Add('grades', TgoBsonArray.Create([       TgoBsonDocument.Create()         .Add('date', EncodeDateTime(2014, 10, 1, 0, 0, 0, 0))         .Add('grade', 'A')         .Add('score', 11),       TgoBsonDocument.Create()         .Add('date', EncodeDateTime(2014, 1, 6, 0, 0, 0, 0))         .Add('grade', 'B')         .Add('score', 17)]))     .Add('name', 'Vella')     .Add('restaurant_id', '941704620');   Collection := Database.GetCollection('restaurants');   Collection.InsertOne(Doc); end;


للاستعلام عن سجل او مستند

كود :
procedure TTestQueryPrimer.QueryAll; var   Collection: IgoMongoCollection;   Count: Integer;   Doc: TgoBsonDocument; begin   Collection := Database.GetCollection('restaurants');   Count := 0;   for Doc in Collection.Find() do     Inc(Count);   Assert.AreEqual(25359, Count); end;

فلترة البيانات

كود :
procedure TTestQueryPrimer.QueryTopLevelField; begin   ...   for Doc in Collection.Find(TgoMongoFilter.Eq('borough', 'Manhattan')) do     Inc(Count);       Assert.AreEqual(10259, Count); end;

كود :
procedure TTestQueryPrimer.LogicalAnd; begin   ...   for Doc in Collection.Find(     TgoMongoFilter.Eq('cuisine', 'Italian') and     TgoMongoFilter.Eq('address.zipcode', '10075')   ) do     Inc(Count);   Assert.AreEqual(15, Count); end;

ترتيب البيانات

كود :
for Doc in Collection.Find(   TgoMongoFilter.Empty,   TgoMongoSort.Ascending('borough') +   TgoMongoSort.Ascending('address.zipcode')) do


حذف البيانات

كود :
procedure TTestRemovePrimer.RemoveMatchingDocuments; var   Collection: IgoMongoCollection;   Count: Integer; begin   Collection := Database.GetCollection('restaurants');   Count := Collection.DeleteMany(TgoMongoFilter.Eq('borough', 'Manhattan'));   Assert.AreEqual(10259, Count); end;

تحديث بيانات

كود :
Collection.UpdateOne(   TgoMongoFilter.Eq('restaurant_id', '41156888'),   TgoMongoUpdate.Init     .&Set('address.street', 'East 31st Street')     .CurrentDate('lastModified));

يوجد ايضا مكونات اخرى ولكل مكتبة اسلوب وطريقة يبقى الاختيار على المستخدم لاختيار الانسب 

MongoEngine

MongoKit

MongoKat

Monary

Django-mongonaut

TxMongo

yunnet
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
[-] كل من 3 users say قال شكرا ل Delphi4Us على المشاركة المفيدة
  • mobile, sathex, أبو معاذ
الرد


الردود في هذا الموضوع
قواعد بيانات MongoDB في دلفي - بواسطة Delphi4Us - 05-07-2020, 11:56 AM
RE: قواعد بيانات MongoDB في دلفي - بواسطة Delphi4Us - 05-07-2020, 09:08 PM
RE: قواعد بيانات MongoDB في دلفي - بواسطة mobile - 05-07-2020, 09:35 PM
RE: قواعد بيانات MongoDB في دلفي - بواسطة Delphi4Us - 05-07-2020, 09:45 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم