MongoDB Java驱动连接基础知识

来源:互联网 发布:手机淘宝家乡版在哪里 编辑:程序博客网 时间:2024/06/06 17:56
Java连接import com.mongodb.Mongo;import com.mongodb.DB;Mongo m = new Mongo();Mongo m = new Mongo(“localhost”);Mongo m = new Mongo(“localhost”, 27017);DB db = m.getDB(“mydb”);使用集合从数据库中获取所有的集合Set colls=db.getCollectionNames();for(String s:colls) {   System.out.println(s);}获取单一的集合DBCollection coll = db.getCollection(“testCollection”);插入文档BasicDBObject doc = new BasicDBObject();doc.put(“name”, “MongoDB”);doc.put(“type”, ”database”);doc.put(“count”, 1);BasicDBObject info = new BasicDBObject();info.put(“x”, 203);info.put(“y”, 102);doc.put(“info”, info);coll.insert(doc);BasicDBObjectBuilder——编译对象强制转换Maps成DBObjects,示例:BasicDBObjectBuilder.start().add(“name”, “eliot”);.add(“number”, 17).get();DBObject myDoc = coll.findOne();BasicDBObject query = new BasicDBObject();query.put(“i”, 71);DBCursor cur = coll.find(query);GridFS文件大小小于4MB的存储机制允许部分或无序读取块文件块结构对底层操作系统是透明的可以在buckets存储文件,MongoDB metaphor默认是fs bucket保存文件到GridFS中def mongo = new Mongo(host)def gridfs = new GridFS(mongo.getDB(”db”))def save(inputStream, contentType, filename) {   def inputFile = gridfs.createFile(inputStream);   inputFile.setContentType(contentType)   inputFile.setFilename(filename)   inputFile.save()}检索/删除文件def retrieveFile(String filename) {   return gridfs.findOne(filename)}def deleteFile(String filename) {   gridfs.remove(filename)}2.MorphiaApache 2授权引入了Hibernate/JPA允许POJOs,实现MongoDB和Java之间转换支持DAO抽象支持type-safe查询兼容GWT、Guice、Spring和DI框架Morphia注解@Id@Entity@Embedded@Reference@Indexed@Serialized@Property创建Morphia POJOimport com.google.code.morphia.annotations.*;@Entity(“collectionName”)public class Contact{   @Id   private String id; //由MongoDB产生   private String firstName;   private String lastName;   @Embedded   Private List phoneNumbers;   //getter 和 setter}映射POJO到Mongo文档中Morphia morphia = …;Mongo mongo = …;DB db = mongo.getDB(“contacts”);Contact contact = …;//映射contact成DBObjectDBObject contactObj = morphia.toDBObject(contact);Db.getCollection(“personal”).save(contactObj);从Mongo文档中读取POJOMorphia morphia = …;Mongo mongo = …;DB db = mongo.getDB(“contacts”);String contactId = …;//从集合中加载对象BasicDBObject idObj = new BasicDBObject(“_id”, new ObjectId(contactId));BasicDBObjec obj = (BasicDBObject) db.getCollection(“personal”).findOne(idObj);Contact contact = morphia.fromDBObject(Contact.class, obj);DAOs封装保存和检索对象POJOs进出的自动转换可以约束搜索关键函数:get(),find()或find(constraits),findOne(constraints),deleteById() DAO示例import com.mongodb.Mongoimport com.google.code.morphia.*;class EntryDAO extends DAO {   public EntryDAO(Morphia morphia, Mongo mongo) {      super(mongo, morphia, “entries”);}} 约束例子dao.find(new Contrainst()orderByDesc(“dateCreated”)).asList()dao.find(new Constraits().field(“dateCreated”).greaterThanOrEqualTo(date).field(“title”).equalTo(params.title)).asList()


 

原创粉丝点击