public getDocumentDatabase ( ) : IStepsDocumentDB | ||
return | IStepsDocumentDB |
static void document_db_test() { Console.WriteLine("======================= Document DB Test =============================="); LayerManager raw_db = new LayerManager(InitMode.NEW_REGION, "c:\\BENDtst\\main"); StepsDatabase db_broker = new StepsDatabase(raw_db); IStepsDocumentDB doc_db = db_broker.getDocumentDatabase(); doc_db.ensureIndex( new string[] { "name" } ); doc_db.ensureIndex(new string[] { "age"}); doc_db.Insert(new BsonDocument { { "_id" , "user1" }, { "name" , "David" }, { "age", 60 } }); doc_db.Insert(new BsonDocument { { "_id" , "user2" }, { "name" , "Tom" }, { "age", 32 } }); doc_db.Insert(new BsonDocument { { "_id" , "user3" }, { "name" , "Tom" }, { "age", 32 } }); raw_db.debugDump(); int count=0; foreach (var doc in doc_db.Find(new BsonDocument() )) { Console.WriteLine(" [{0}] = {1}", count++, doc.ToJson()); } var change_spec = new BsonDocument{ { "$inc" , new BsonDocument { { "age", 1 } } } }; Console.WriteLine("change spec = " + change_spec.ToJson()); doc_db.Update(new BsonDocument(), change_spec); raw_db.debugDump(); foreach (var doc in doc_db.Find(new BsonDocument () )) { Console.WriteLine(" [{0}] = {1}", count++, doc.ToJson()); } }
static void Main(string[] args) { bool isInitialStartup = false; // (1) read the config file string DBPATH = @"c:\BENDtst\main"; // ... if we are doing an initial startup... if (isInitialStartup) { // DO initial database setup and then end... LayerManager new_db = new LayerManager(InitMode.NEW_REGION, DBPATH); // ... return; } // (2) startup a snapshot/replica/document database LayerManager raw_db = new LayerManager(InitMode.RESUME, DBPATH); StepsDatabase db_broker = new StepsDatabase(raw_db); // how do we address subsetting / databases / collections??? IStepsDocumentDB doc_db = db_broker.getDocumentDatabase(); // (3) startup the web-status interface StepsStatusServer myStatusServer = new StepsStatusServer(81, raw_db); Thread thread = new Thread(new ThreadStart(myStatusServer.listen)); thread.Start(); // (4) start the REST api handler (listening for client connections) StepsRestAPIServer myServer = new StepsRestAPIServer(5985, doc_db); myServer.listen(); // (main runloop) // !! SHUTDOWN !! thread.Abort(); }