public static void Import(string databaseName, string collectionName, string file, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.WriteLine("Import : {0} from file \"{1}\"", collection.zGetFullName(), file); MongoCommand.Import(databaseName, collectionName, file, server); }
public static void ExportDatabase(string databaseName, string directory, string sort = null, string server = null) { MongoDatabase database = MongoCommand.GetDatabase(server, databaseName); Trace.Write("Export database : {0} to directory \"{1}\"", database.zGetFullName(), directory); foreach (string collection in database.GetCollectionNames()) { string file = zPath.Combine(directory, "export_" + collection + ".txt"); Export(databaseName, collection, file, sort: sort, server: server); } }
public static void FindOneById <TDocument>(string databaseName, string collectionName, object key, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); BsonValue bsonKey = BsonValue.Create(key); Trace.Write("FindOneByIdAs : {0} key ", collection.zGetFullName()); Trace.Write(bsonKey.ToJson()); Trace.Write(" type {0}", typeof(TDocument)); TDocument result = collection.zFindOneById <TDocument>(bsonKey); Trace.WriteLine(result.zToJson()); }
public static void UpdateDocuments(string databaseName, string collectionName, string query, Action <BsonDocument> updateDocument, string sort = null, int limit = 0, string queryOptions = null, MongoInsertOptions saveOptions = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.Write("UpdateDocuments : {0} query ", collection.zGetFullName()); QueryDocument queryDoc = query.zToQueryDocument(); Trace.Write(queryDoc.ToJson()); SortByWrapper sortByWrapper = null; if (sort != null) { sortByWrapper = sort.zToSortByWrapper(); Trace.Write(" sort {0}", sortByWrapper.ToJson()); } if (limit != 0) { Trace.Write(" limit {0}", limit); } BsonDocument queryOptionsDoc = null; if (queryOptions != null) { queryOptionsDoc = queryOptions.zDeserializeToBsonDocument(); Trace.Write(" options {0}", queryOptionsDoc.ToJson()); } Trace.WriteLine(); if (saveOptions == null) { saveOptions = new MongoInsertOptions(); } foreach (BsonDocument document in collection.zFind <BsonDocument>(queryDoc, sort: sortByWrapper, limit: limit, options: queryOptionsDoc)) { updateDocument(document); Trace.Write(" Save : {0} document ", collection.zGetFullName()); Trace.Write(document.ToJson()); Trace.Write(" options "); Trace.Write(saveOptions.ToJson()); Trace.WriteLine(); collection.zSave(document, saveOptions); } }
//private string _backupDirectory = null; //private string _tempBackupDirectory = null; //private string _zipFilename = null; //private List<MongoCollection> _collections = new List<MongoCollection>(); //public string BackupDirectory { get { return _backupDirectory; } set { _backupDirectory = value; } } //public string TempBackupDirectory { get { return _tempBackupDirectory; } set { _tempBackupDirectory = value; } } //public void AddCollection(MongoCollection collection) //{ // _collections.Add(collection); //} //public void AddCollections(IEnumerable<MongoCollection> collections) //{ // foreach (MongoCollection collection in collections) // _collections.Add(collection); //} //public void _Backup() //{ // List<string> files = new List<string>(); // foreach (MongoCollection collection in _collections) // { // string file = _Backup(collection); // files.Add(file); // } // string zipFile = Zip(files); //} //private string _Backup(MongoCollection collection) //{ // string name = collection.Database.Name + "." + collection.Name; // string file = zPath.Combine(_tempBackupDirectory, name + ".txt"); // Trace.WriteLine("export mongo collection \"{0}\"", name); // MongoCommand.Export(collection, file); // return file; //} //private string Zip(IEnumerable<string> files) //{ // if (_zipFilename == null) // throw new PBException("zip file is not defined"); // if (_tempBackupDirectory == null) // throw new PBException("temp backup directory is not defined"); // string zipFile = zPath.Combine(_tempBackupDirectory, _zipFilename + ".zip"); // Trace.WriteLine("zip files to \"{0}\"", zipFile); // ZipArchive.Zip(zipFile, files, options: ZipArchiveOptions.DeleteSourceFiles); // return zipFile; //} //private void MoveFilesToBackupDirectory(string file) //{ // if (_backupDirectory == null) // throw new PBException("backup directory is not defined"); // Trace.WriteLine("move zip file to \"{0}\"", _backupDirectory); // zfile.MoveFile(file, _backupDirectory, overwrite: true); //} public static string Backup(MongoCollection collection, string directory) { if (directory == null) { throw new PBException("directory is not defined"); } string name = collection.Database.Name + "." + collection.Name; string file = zPath.Combine(directory, name + ".txt"); Trace.WriteLine("export mongo collection \"{0}\"", name); MongoCommand.Export(collection, file); return(file); }
public static MongoCursor <TDocument> FindAll <TDocument>(string databaseName, string collectionName, string sort = null, string fields = null, int limit = 0, string options = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.Write("FindAllAs : {0}", collection.zGetFullName()); SortByWrapper sortByWrapper = null; if (sort != null) { sortByWrapper = sort.zToSortByWrapper(); Trace.Write(" sort {0}", sortByWrapper.ToJson()); } FieldsWrapper fieldsWrapper = null; if (fields != null) { fieldsWrapper = fields.zToFieldsWrapper(); Trace.Write(" fields {0}", fieldsWrapper.ToJson()); } if (limit != 0) { Trace.Write(" limit {0}", limit); } BsonDocument optionsDoc = null; if (options != null) { optionsDoc = options.zDeserializeToBsonDocument(); Trace.Write(" options {0}", optionsDoc.ToJson()); } Trace.WriteLine(); MongoCursor <TDocument> cursor = collection.zFindAll <TDocument>(sortByWrapper, fieldsWrapper, limit, optionsDoc); //if (ResultToText) //{ // int i = 0; // foreach (TDocument value in cursor) // { // Trace.WriteLine(value.zToJson(true)); // i++; // } // Trace.WriteLine("found {0} document(s)", i); //} return(cursor); }
public static void RenameCollection(string databaseName, string collectionName, string newCollectionName, string server = null) { MongoDatabase database = MongoCommand.GetDatabase(server, databaseName); Trace.Write("Rename collection : {0} \"{1}\" to \"{2}\"", database.zGetFullName(), collectionName, newCollectionName); try { CommandResult result = database.zRenameCollection(collectionName, newCollectionName); TraceResult(result); } finally { Trace.WriteLine(); } }
public static void RemoveAll(string databaseName, string collectionName, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.Write("RemoveAll : {0}", collection.zGetFullName()); try { WriteConcernResult result = collection.zRemoveAll(); TraceResult(result); } finally { Trace.WriteLine(); } }
public static void Count(string databaseName, string collectionName, string query = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); QueryDocument queryDoc = query.zToQueryDocument(); Trace.Write("Count : {0}", collection.zGetFullName()); if (queryDoc != null) { Trace.Write(" query "); Trace.Write(queryDoc.ToJson()); } long count = collection.zCount(queryDoc); Trace.WriteLine(" count {0}", count); }
//public static bool ResultToGrid = false; //public static bool ResultToText = false; public static void Eval(string code, string databaseName = "admin", string server = null) { MongoDatabase database = MongoCommand.GetDatabase(server, databaseName); //if (code.StartsWith("{") && code.EndsWith("}")) // code = "db.runCommand( " + code + " )"; //EvalArgs evalArgs = new EvalArgs { Code = new BsonJavaScript(code) }; EvalArgs evalArgs = code.zToEvalArgs(); Trace.WriteLine("Eval : {0} {1}", database.zGetFullName(), evalArgs.ToJson()); // obsolete : 'MongoDB.Driver.MongoDatabase.Eval(MongoDB.Bson.BsonJavaScript, params object[])' is obsolete: 'Use the overload of Eval that has an EvalArgs parameter instead.' // BsonValue Eval(BsonJavaScript code, params object[] args); BsonValue result = database.zEval(evalArgs); Trace.WriteLine(result.zToJson()); }
public static void Export(string databaseName, string collectionName, string file, string query = null, string sort = null, string fields = null, int limit = 0, string options = null, Func <BsonDocument, BsonDocument> transformDocument = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.Write("Export : {0} to file \"{1}\"", collection.zGetFullName(), file); QueryDocument queryDoc = null; if (query != null) { queryDoc = query.zToQueryDocument(); Trace.Write(queryDoc.ToJson()); } SortByWrapper sortByWrapper = null; if (sort != null) { sortByWrapper = sort.zToSortByWrapper(); Trace.Write(" sort {0}", sortByWrapper.ToJson()); } FieldsWrapper fieldsWrapper = null; if (fields != null) { fieldsWrapper = fields.zToFieldsWrapper(); Trace.Write(" fields {0}", fieldsWrapper.ToJson()); } if (limit != 0) { Trace.Write(" limit {0}", limit); } BsonDocument optionsDoc = null; if (options != null) { optionsDoc = options.zDeserializeToBsonDocument(); Trace.Write(" options {0}", optionsDoc.ToJson()); } Trace.WriteLine(); MongoCommand.Export(databaseName, collectionName, file, query, sort, fields, limit, options, transformDocument, server); }
public static void Remove(string databaseName, string collectionName, string query, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); QueryDocument queryDoc = query.zToQueryDocument(); Trace.Write("Remove : {0} query ", collection.zGetFullName()); Trace.Write(queryDoc.ToJson()); try { WriteConcernResult result = collection.zRemove(queryDoc); TraceResult(result); } finally { Trace.WriteLine(); } }
//IEnumerable<TValue> Distinct<TValue>(string key, IMongoQuery query); //public static MongoCursor<TDocument> Find<TDocument>(string databaseName, string collectionName, string query, string sort = null, string fields = null, int limit = 0, string options = null, string server = null) //{ //} public static void FindAndModify(string databaseName, string collectionName, string query, string update, bool upsert = false, string sort = null, string fields = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); QueryDocument queryDoc = query.zToQueryDocument(); UpdateDocument updateDoc = update.zToUpdateDocument(); Trace.Write("FindAndModify : {0} query ", collection.zGetFullName()); Trace.Write(queryDoc.ToJson()); Trace.Write(" update "); Trace.Write(updateDoc.ToJson()); Trace.Write(" upsert {0}", upsert); SortByWrapper sortByWrapper = null; if (sort != null) { sortByWrapper = sort.zToSortByWrapper(); Trace.Write(" sort {0}", sortByWrapper.ToJson()); } FieldsWrapper fieldsWrapper = null; if (fields != null) { fieldsWrapper = fields.zToFieldsWrapper(); Trace.Write(" fields {0}", fieldsWrapper.ToJson()); } FindAndModifyResult result; try { result = collection.zFindAndModify(queryDoc, updateDoc, upsert, sortByWrapper, fieldsWrapper); TraceResult(result); } finally { Trace.WriteLine(); } Trace.WriteLine("document"); Trace.WriteLine(result.ModifiedDocument.zToJson()); }
public static void Insert <TDocument>(string databaseName, string collectionName, TDocument document, MongoInsertOptions options = null, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); Trace.Write("Insert : {0}", collection.zGetFullName()); Trace.Write(" document "); Trace.Write(document.ToJson()); if (options == null) { options = new MongoInsertOptions(); } Trace.Write(" check element names {0} flags {1}", options.CheckElementNames, options.Flags); try { WriteConcernResult result = collection.zInsert(document, options); TraceResult(result); } finally { Trace.WriteLine(); } }
public static void Update(string databaseName, string collectionName, string query, string update, UpdateFlags flags = UpdateFlags.None, string server = null) { MongoCollection collection = MongoCommand.GetDatabase(server, databaseName).GetCollection(collectionName); QueryDocument queryDoc = query.zToQueryDocument(); UpdateDocument updateDoc = update.zToUpdateDocument(); Trace.Write("Update : {0} query ", collection.zGetFullName()); Trace.Write(queryDoc.ToJson()); Trace.Write(" update "); Trace.Write(updateDoc.ToJson()); Trace.Write(" flags "); Trace.Write(flags.ToString()); try { WriteConcernResult result = collection.zUpdate(queryDoc, updateDoc, flags); TraceResult(result); } finally { Trace.WriteLine(); } }