MongoDB自己整理.docx_第1页
MongoDB自己整理.docx_第2页
MongoDB自己整理.docx_第3页
MongoDB自己整理.docx_第4页
MongoDB自己整理.docx_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

10启动MongoDB(windows环境)1, 执行如下命令:mongod -port 9076 -dbpath F:datadb (进入到安装目录bin下操作)2, 27017是MongoDB的默认端口号3,MongoDB服务成功启动后,另开一个命令窗口,进入到MongoDB的bin目录,输入“mongo”命令来连接数据库,可以输入“exit”或按Ctrl+C键来退出连接指定端口启动 mongo port 9076备注:我电脑中mongoDB安装目录:F:softInstallmongoDB 我电脑中mongoDB的db目录:F:datadbMongod -port 9076 dbpath f:datadbMongoDB概念的理解:MongoDB重要特性:1.它里面自带了一个名叫GirdFS的分布式文件系统,这就为MongoDB的部署提供了很大便利。而像MySQL这种比较早的数据库,虽然市面上有很多不同的分表部署的方案,但这种终究不如MongoDB直接官方支持来得便捷实在。2.另外,MongoDB内部还自建了对map-reduce运算框架的支持,虽然这种支持从功能上看还算是比较简单的,相当于MySQL里GroupBy功能的扩展版,不过也为数据的统计带来了方便。3.MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内存资源相当丰富的话,这将极大地提高数据库的查询速度,毕竟内存的I/O效率比磁盘高多了。-常用命令cmdMongoDB使用步骤:/ 连接到 mongodb 服务MongoClient mongoClient = new MongoClient( localhost , 27017 ); / 连接到数据库 MongoDatabase mongoDatabase = mongoClient.getDatabase(mycol); System.out.println(Connect to database successfully); MongoCollection collection = mongoDatabase.getCollection(test);如果是maven项目: org.mongodb mongo-java-driver 2.13.2官网参考资料:Shell操作官方文档/manual-zh/reference/method/db.collection.insert.html#db.collection.insertjava操作官方文档http:/mongodb.github.io/mongo-java-driver/3.4/driver/getting-started/quick-start/mongoDB APIhttp:/mongodb.github.io/mongo-java-driver/3.4/javadoc/spring_data_mongodbhttp:/docs.spring.io/spring-data/data-mongo/docs/2.0.0.M2/api/各种情况下mongodb的启动与关闭/pgwindwind/article/details/8005262java操作增删查改增:-插入单个documentDocument doc = new Document(name, MongoDB) .append(type, database) .append(count, 1) .append(versions, Arrays.asList(v3.2, v3.0, v2.6) .append(info, new Document(x, 203).append(y, 102);collection.insertOne(doc);-插入多个documentList documents = new ArrayList();for (int i = 0; i 100; i+) documents.add(new Document(i, i);collection.insertMany(documents);如果文档中没有指定顶级_id字段,MongoDB将自动将_id字段添加到插入的文档中。且不指定_id插入是速度会快些(_id系统随机生成不重复,如果指定了话插入时系统会判断有没有重复,这样就影响了速度)删:-删除找到的符合过滤条件的第一项,如果没有符合条件的则集合不受影响collection.deleteOne(Bson filter);-删除找到的符合过滤条件的所有项目collection.deleteMany(Bson filter); 查:-统计集合中的总数(可以加入查询条件)collection.count()-查找集合中的第一个元素*collection.find().first();-迭代一个集合(官网上说的避免使用增强for循环来迭代,说是可能会导致游标泄漏)MongoCursor cursor = collection.find().iterator();try while (cursor.hasNext() System.out.println(cursor.next().toJson(); finally cursor.close();指定条件的查询eg:collection.find(Filters.gt(i, 1);常用方法如下: com.mongodb.client.model Class Filters 以下所有方法都是静态的and(Bson.filters) 创建一个过滤器,执行所提供的过滤器列表的逻辑ANDeq(StringfieldName, TItemvalue)创建一个与字段名称的值等于指定值的所有文档匹配的过滤器。exists(StringfieldName)创建一个与包含给定字段的所有文档匹配的过滤器。exists(StringfieldName, booleanexists)创建一个过滤器,匹配所有包含或不包含给定字段的文档,具体取决于exists参数的值。gt(StringfieldName, TItemvalue)创建一个与给定字段的值大于指定值的所有文档匹配的过滤器.gte(StringfieldName, TItemvalue)创建与给定字段的值大于或等于指定值的所有文档匹配的过滤器。in(StringfieldName, TItem.values)创建一个匹配所有文档的过滤器,其中某个字段的值等于指定值列表中的任何值lt(StringfieldName, TItemvalue)创建一个与给定字段的值小于指定值的所有文档匹配的过滤器。lte(StringfieldName, TItemvalue)创建一个与给定字段的值小于或等于指定值的所有文档匹配的过滤器ne(StringfieldName, TItemvalue)创建一个与字段名称的值不等于指定值的所有文档匹配的过滤器。nin(StringfieldName, TItem.values)创建一个与字段值不等于任何指定值或不存在的所有文档匹配的过滤器。nor(Bson.filters)创建一个在所有指定的过滤器上执行逻辑“或”运算的过滤器。not(Bsonfilter)创建一个匹配所有与传入过滤器不匹配的文档的过滤器。or(Bson.filters) 创建一个过滤器,该过滤器将提供所提供的过滤器列表的逻辑或。regex(StringfieldName,Patternpattern)创建一个过滤器,匹配所有文档,其中字段的值与给定的正则表达式模式匹配,并应用给定的选项。排序查询分页查询使用in包含查询模糊查询:下面是查询包含 西路两个字符的记录改:删除单个元素(第一个参数是过滤条件,第二个参数的设置的新值)collection.updateOne(eq(i, 10), new Document($set, new Document(i, 110);$set只修改指定字段值,当字段不存在时,则在该文档中添加一个新的字段并赋值doc.updateOne(Filters.eq(age, 20), new Document($set,new Document(sex,2222);$inc对指定字段进行增量增加,当字段不存在时,则在该文档中添加字段并赋值doc.updateOne(Filters.eq(name, 张三), new Document($inc,new Document(age,10);$mul$mul的用法与$inc的用法差不多,差别在于$mul为相乘,$inc为相加,若字段不存在,添加字段并赋值为0$rename修改document的字段名doc.updateOne(Filters.eq(name, 张三), new Document($rename,new Document(phone,telPhone);-2017年5月8日09:09:53Spring+mongodb整合在perties中的添加的信息:.springframework.data.mongodb=DEBUGlog4j.appender.stdout.layout.ConversionPattern=%dABSOLUTE %5p %40.40c:%4L - %m%n所需的jar包.,由于spring-data-commons的版本是1.6以上的,所有要使用spring 4.0的环境。配置(1) (2)插入时如果没有建表,会把类名首字母小写当作表名-udpate操作更新单个记录(根据查询条件找到的第一条记录)mongoOps.updateFirst(new Query(Criteria.where(id).is(10086), new Update().set(key1,value1).set(key2,value2), T.class,tableName );mongoOps.updateFirst(new Query(Criteria.where(id).is(10086), Update.update(key,value), T.class,tableName );mon更新多条记录(符合查询条件的都更新用法同上)mongoOps.updateMulti -delete操作删除表mongoOps.dropCollection(tableName);删除符合查询条件的记录mongoOps.remove(new Query(Criteria.where(id).is(10086),T.class);-select操作查询一条记录mongoOps.findOne(new Query(Criteria.where(id).is(10086).and(name).is(lijin), T.class, tableName);查询多条记录mongoOps.find(new Query(Criteria.where(id).is(10086).and(name).is(lijin), T.class, tableName);查找全部mongoOps.findAll(T.class,tableName);根据id查找mongoOps.findById(id,T.class);根据某字段排序-insert操作Person person=new Person(lijin,99,1111); Person person2=new Person(lijin2,99,2222); Person person3=new Person(lijin3,99,3333); List list = Arrays.asList(person,person2,person3); mongoOps.insert(list,person);/参数可以是集合也可以是对象-排序:-分页-distinct查询-条件查询-group分组MongoDB对数组元素及内嵌文档进行增删改查操作/子数组关联文档中插入元素 /* PickFacility p =new PickFacility(222,111,1111); Query query=Query.query(Criteria.where(_id).is(3589); Update update=new Update(); update.addToSet(fcs,p);/可以增加 /update.set(fcs,p); mongoOps.upsert(query,update,lijin);*/改tags数组中内嵌文档指定一个元素的值 Query query = Query.query(Criteria.where(_id).is(3589) .and(fcs._id).is(376851); Update update = new Update(); update.set(fcs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论