public virtual List <FreeDocument> TryFindEntities(string tableName, IDictionary <string, object> search , List <string> keys, int count = -1, DBSearchStrategy searchStrategy = DBSearchStrategy.Contains) { return(new List <FreeDocument>()); }
public override List <IFreeDocument> TryFindEntities(string tableName, IDictionary <string, object> search , Type type = null, int count = -1, DBSearchStrategy searchStrategy = DBSearchStrategy.Contains) { if (type == null) { type = typeof(FreeDocument); } if (IsUseable == false) { return(new List <IFreeDocument>()); } IMongoCollection <Document> collection = DB.GetCollection <Document>(tableName); var querydoc = new Document(); foreach (var r in search) { querydoc.Add(r.Key, r.Value); } if (count != 1) { ICursor <Document> document = collection.Find(querydoc); if (document == null) { return(new List <IFreeDocument>()); } var results = new List <IFreeDocument>(); foreach (Document item in document.Documents) { if (count > 0) { count--; } if (count == 0) { break; } var result = Activator.CreateInstance(type) as IFreeDocument; result.DictDeserialize(item); results.Add(result); } return(results); } else { var document = collection.FindOne(querydoc); if (document == null) { return(new List <IFreeDocument>()); } var results = new List <IFreeDocument>(); var result = Activator.CreateInstance(type) as IFreeDocument; result.DictDeserialize(document); results.Add(result); return(results); } }
public override List <FreeDocument> TryFindEntities(string tableName, IDictionary <string, object> search, List <string> keys = null , int count = -1, DBSearchStrategy searchStrategy = DBSearchStrategy.Contains) { if (IsUseable == false) { return(new List <FreeDocument>()); } object fieldselector = null; if (keys != null) { fieldselector = keys.ToDictionary(d => d, d => 1); } var collection = DB.GetCollection <Document>(tableName); var querydoc = new Document(); foreach (var r in search) { querydoc.Add(r.Key, r.Value); } if (count != 1) { var document = collection.Find(querydoc, fieldselector); if (document == null) { return(new List <FreeDocument>()); } var results = new List <FreeDocument>(); foreach (var item in document.Documents) { if (count > 0) { count--; } if (count == 0) { break; } var result = new FreeDocument(); result.DictDeserialize(item); results.Add(result); } return(results); } else { var document = collection.FindOne(querydoc); if (document == null) { return(new List <FreeDocument>()); } var results = new List <FreeDocument>(); var result = new FreeDocument(); result.DictDeserialize(document); results.Add(result); return(results); } }