添加文档:

添加单个文档,多个文档

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.MongoCollection;
  3. import org.bson.Document;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.List;
  7. public class InsertDocument {
  8. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  9. public static void main(String[] args) {
  10. InsertDocument insert=new InsertDocument();
  11. //insert.insertSingleDocument();
  12. insert.insertManyDocument();
  13. }
  14. /**
  15. * 添加单个文档
  16. */
  17. public void insertSingleDocument(){
  18. Document document=new Document();
  19. document.append("uname","lisi").append("age",25).append("userdesc","good").append("hobby", Arrays.asList(new String[]{"Music","Movie"}));
  20. collection.insertOne(document);
  21. }
  22. /**
  23. * 添加多个文档
  24. */
  25. public void insertManyDocument(){
  26. List<Document> documentList=new ArrayList<>();
  27. for (int i=1;i<5;i++){
  28. Document document=new Document();
  29. document.append("uname","zs"+i);
  30. document.append("age",25+i);
  31. document.append("userdesc","prefect");
  32. document.append("hobby", Arrays.asList(new String[]{"美女","Ballgame"}));
  33. documentList.add(document);
  34. }
  35. collection.insertMany(documentList);
  36. }
  37. }

更新文档:

更新单个文档单个键,更新单个文档多个键,更新多个文档单个键,更新多个文档多个键,更新数组

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.MongoCollection;
  3. import com.mongodb.client.model.Filters;
  4. import org.bson.Document;
  5. public class UpdateDocument {
  6. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  7. public static void main(String[] args) {
  8. UpdateDocument update=new UpdateDocument();
  9. //update.updateManyKeyDocument();
  10. //update.updateManyDocumentSingleKey();
  11. //update.updateManyDocumentManyKey();
  12. // update.updateSingleDocumentArray();
  13. update.updateManyDocumentArray();
  14. }
  15. /**
  16. * 更新单个文档单个键
  17. */
  18. public void updateSingleKeyDocument(){
  19. collection.updateOne(Filters.eq("uname","lisi"),new Document("$set",new Document("age",28)));
  20. }
  21. /**
  22. * 更新单个文档多个键
  23. */
  24. public void updateManyKeyDocument(){
  25. collection.updateOne(Filters.eq("uname","zs1"),new Document("$set",new Document("age",18).append("userdesc","very good")));
  26. }
  27. /**
  28. * 更新多个文档单个键
  29. */
  30. public void updateManyDocumentSingleKey(){
  31. collection.updateMany(Filters.ne("uname",null),new Document("$set",new Document("userdesc","pretry good")));
  32. }
  33. /**
  34. * 更新多个文档多个键
  35. */
  36. public void updateManyDocumentManyKey(){
  37. collection.updateMany(Filters.ne("uname",null),new Document("$set",new Document("userdesc","good").append("age",18)));
  38. }
  39. /**
  40. * 更新单个文档的数组
  41. */
  42. public void updateSingleDocumentArray(){
  43. collection.updateMany(Filters.eq("uname","zs2"),new Document("$push",new Document("hobby","看小电影")));
  44. }
  45. /**
  46. * 更新单个文档的多个数组
  47. */
  48. public void updateManyDocumentArray(){
  49. collection.updateMany(Filters.ne("uname",null),new Document("$push",new Document("hobby","欣赏小电影")));
  50. }
  51. }

查询文档:

查询全部文档,查询指定文档,查询多个文档(操作符)

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.FindIterable;
  3. import com.mongodb.client.MongoCollection;
  4. import com.mongodb.client.MongoCursor;
  5. import com.mongodb.client.model.Filters;
  6. import org.bson.Document;
  7. import org.bson.types.ObjectId;
  8. import java.util.regex.Pattern;
  9. public class SelectDocument {
  10. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  11. public static void main(String[] args) {
  12. SelectDocument select=new SelectDocument();
  13. //select.selectAll();
  14. //select.selectById();
  15. //select.selectManytype();
  16. /*select.selectManyin();*/
  17. //select.selectManynin();
  18. //select.selectManyregex();
  19. //select.selectManyand();
  20. //select.selectManyor();
  21. //select.selectManyorand();
  22. select.selectManysort();
  23. }
  24. /**
  25. * 查询所有
  26. */
  27. public void selectAll(){
  28. FindIterable<Document> iterable = collection.find();
  29. MongoCursor<Document> iterator = iterable.iterator();
  30. while (iterator.hasNext()){
  31. Document doc = iterator.next();
  32. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  33. }
  34. }
  35. /**
  36. * 根据id查询
  37. */
  38. public void selectById(){
  39. FindIterable<Document> iterable = collection.find(Filters.eq("_id",new ObjectId("5dc0d6ca614f6b0a0c1915e3")));
  40. MongoCursor<Document> iterator = iterable.iterator();
  41. while (iterator.hasNext()){
  42. Document doc = iterator.next();
  43. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  44. }
  45. }
  46. /**
  47. * 查询多个文档+gt
  48. */
  49. public void selectManygt(){
  50. FindIterable<Document> iterable = collection.find(Filters.gt("age",17));
  51. MongoCursor<Document> iterator = iterable.iterator();
  52. while (iterator.hasNext()){
  53. Document doc = iterator.next();
  54. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  55. }
  56. }
  57. /**
  58. * 查询多个文档+type
  59. */
  60. public void selectManytype(){
  61. FindIterable<Document> iterable = collection.find(Filters.type("age","number"));
  62. MongoCursor<Document> iterator = iterable.iterator();
  63. while (iterator.hasNext()){
  64. Document doc = iterator.next();
  65. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  66. }
  67. }
  68. /**
  69. * 查询多个文档+in
  70. */
  71. public void selectManyin(){
  72. FindIterable<Document> iterable = collection.find(Filters.in("uname","zs1","zs2","zs3"));
  73. MongoCursor<Document> iterator = iterable.iterator();
  74. while (iterator.hasNext()){
  75. Document doc = iterator.next();
  76. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  77. }
  78. }
  79. /**
  80. * 查询多个文档+nin
  81. */
  82. public void selectManynin(){
  83. FindIterable<Document> iterable = collection.find(Filters.nin("uname","zs1","zs2","zs3"));
  84. MongoCursor<Document> iterator = iterable.iterator();
  85. while (iterator.hasNext()){
  86. Document doc = iterator.next();
  87. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  88. }
  89. }
  90. /**
  91. * 查询多个文档以z开头2结尾
  92. */
  93. public void selectManyregex(){
  94. FindIterable<Document> iterable = collection.find(Filters.regex("uname", Pattern.compile("^z.*2$")));
  95. MongoCursor<Document> iterator = iterable.iterator();
  96. while (iterator.hasNext()){
  97. Document doc = iterator.next();
  98. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  99. }
  100. }
  101. /**
  102. * 查询多个文档姓名是zs1,年龄是18
  103. */
  104. public void selectManyand(){
  105. FindIterable<Document> iterable = collection.find(Filters.and(Filters.eq("uname","zs1"),Filters.eq("age",18)));
  106. MongoCursor<Document> iterator = iterable.iterator();
  107. while (iterator.hasNext()){
  108. Document doc = iterator.next();
  109. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  110. }
  111. }
  112. /**
  113. * 查询用户要求 uname 是 zs1,或者 age 是 18
  114. */
  115. public void selectManyor(){
  116. FindIterable<Document> iterable = collection.find(Filters.or(Filters.eq("uname","zs1"),Filters.eq("age",18)));
  117. MongoCursor<Document> iterator = iterable.iterator();
  118. while (iterator.hasNext()){
  119. Document doc = iterator.next();
  120. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  121. }
  122. }
  123. /**
  124. * 查询文档中 uname 为 lisi 并且年龄为 18 岁,或者 userdesc 为 good
  125. */
  126. public void selectManyorand(){
  127. FindIterable<Document> iterable = collection.find(Filters.or(Filters.and(Filters.eq("uname","lisi"),Filters.eq("age",18)),Filters.eq("userdesc","good")));
  128. MongoCursor<Document> iterator = iterable.iterator();
  129. while (iterator.hasNext()){
  130. Document doc = iterator.next();
  131. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  132. }
  133. }
  134. /**
  135. * 查询文档中 username 是 z 开头的,根据 username 对结果做降序排序。1升序排序, -1 降序排序规则 $sort:{username,-1}
  136. */
  137. public void selectManysort(){
  138. FindIterable<Document> iterable = collection.find(Filters.regex("uname",Pattern.compile("^z"))).sort(new Document("uname",-1));
  139. MongoCursor<Document> iterator = iterable.iterator();
  140. while (iterator.hasNext()){
  141. Document doc = iterator.next();
  142. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+doc.get("hobby"));
  143. }
  144. }
  145. }

对于时间的操作

插入主机时间,插入指定时间,根据指定日期去查询数据(操作符:gt,eq,)

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.FindIterable;
  3. import com.mongodb.client.MongoCollection;
  4. import com.mongodb.client.MongoCursor;
  5. import com.mongodb.client.model.Filters;
  6. import org.bson.Document;
  7. import java.util.Date;
  8. public class DateOperation {
  9. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  10. public static void main(String[] args) {
  11. DateOperation operation=new DateOperation();
  12. //operation.insertDate();
  13. //operation.insertCusDate();
  14. //operation.SelectDate();
  15. operation.SelectDategt();
  16. }
  17. /**
  18. * 插入时间
  19. */
  20. public void insertDate(){
  21. Document doc=new Document();
  22. doc.put("uname","ww");
  23. doc.put("age",25);
  24. doc.put("userdesc","very good");
  25. doc.put("birth",new Date());
  26. collection.insertOne(doc);
  27. }
  28. /**
  29. * 插入指定日期
  30. */
  31. public void insertCusDate(){
  32. Date date=DateUtil.stringToDate("yyyy-MM-dd HH:mm:ss","2019-05-01 13:32:13");
  33. Document doc=new Document();
  34. doc.put("uname","zl");
  35. doc.put("age",28);
  36. doc.put("userdesc","very very good");
  37. doc.put("birth",date);
  38. collection.insertOne(doc);
  39. }
  40. /**
  41. * 根据指定日期去查询数据
  42. */
  43. public void SelectDate(){
  44. Date date=DateUtil.stringToDate("yyyy-MM-dd hh:mm:ss","2019-05-01 13:32:13");
  45. FindIterable iterable = collection.find(Filters.eq("birth", date));
  46. MongoCursor<Document> iterator = iterable.iterator();
  47. while (iterator.hasNext()){
  48. Document doc = iterator.next();
  49. String birth = DateUtil.dateToString("yyyy-MM-dd hh:mm:ss", (Date) doc.get("birth"));
  50. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+birth);
  51. }
  52. }
  53. /**
  54. * 根据指定日期去查询数据
  55. */
  56. public void SelectDategt(){
  57. Date date=DateUtil.stringToDate("yyyy-MM-dd hh:mm:ss","2019-01-01 00:00:00");
  58. FindIterable iterable = collection.find(Filters.gt("birth", date));
  59. MongoCursor<Document> iterator = iterable.iterator();
  60. while (iterator.hasNext()){
  61. Document doc = iterator.next();
  62. String birth = DateUtil.dateToString("yyyy-MM-dd hh:mm:ss", (Date) doc.get("birth"));
  63. System.out.println(doc.get("uname")+"\t"+doc.get("age")+"\t"+doc.get("userdesc")+"\t"+birth);
  64. }
  65. }
  66. }

聚合操作(各种查询,操作符)

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.AggregateIterable;
  3. import com.mongodb.client.MongoCollection;
  4. import com.mongodb.client.MongoCursor;
  5. import org.bson.Document;
  6. import java.util.ArrayList;
  7. import java.util.Arrays;
  8. import java.util.List;
  9. public class AggregateOperation {
  10. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  11. public static void main(String[] args) {
  12. AggregateOperation operation = new AggregateOperation();
  13. //operation.selectDocumentAggregateCount();
  14. //operation.selectDocumentAggregateSum();
  15. //operation.selectDocumentAggregateGroupBySum();
  16. //operation.selectDocumentAggregateGroupByWhere();
  17. //operation.selectDocumentAggregateGroupByHaving();
  18. //operation.selectDocumentProject();
  19. //operation.selectDocumentProjectConcat();
  20. //operation.selectDocumentProjectAdd();
  21. operation.selectDocumentProjectDate();
  22. }
  23. /**
  24. * 查询集合中的文档数量
  25. * MongoShell:db.dev.aggregate([{$group:{_id:null,count:{$sum:1}}
  26. */
  27. public void selectDocumentAggregateCount() {
  28. Document doc = new Document();
  29. doc.put("$sum", 1);
  30. Document count = new Document();
  31. count.put("_id", null);
  32. count.put("count", doc);
  33. Document group = new Document();
  34. group.put("$group", count);
  35. List<Document> list = new ArrayList<>();
  36. list.add(group);
  37. AggregateIterable iterable = collection.aggregate(list);
  38. MongoCursor<Document> iterator = iterable.iterator();
  39. while (iterator.hasNext()) {
  40. Document docu = iterator.next();
  41. System.out.println(docu.get("count"));
  42. }
  43. }
  44. /**
  45. * 需求:查询集合中所有 age 键中的值的总和
  46. * MongoShell:db.dev.aggregate([{$group:{_id:null,totalSize:{$sum:"$size"}}}])
  47. */
  48. public void selectDocumentAggregateSum() {
  49. Document document = new Document();
  50. document.put("$sum", "$age");
  51. Document sumage = new Document();
  52. sumage.put("_id", null);
  53. sumage.put("sumage", document);
  54. Document group = new Document();
  55. group.put("$group", sumage);
  56. List<Document> list = new ArrayList<>();
  57. list.add(group);
  58. AggregateIterable iterable = collection.aggregate(list);
  59. MongoCursor<Document> iterator = iterable.iterator();
  60. while (iterator.hasNext()) {
  61. Document doc = iterator.next();
  62. System.out.println("sum_age: " + doc.get("sumage"));
  63. }
  64. }
  65. /**
  66. * 需求:对 uname 进行分组,计算每组中的 age 的总和
  67. * MongoShell:db.dev.aggregate([{$group:{_id:"$title",totalSize:{$sum:"$size"}}}])
  68. */
  69. public void selectDocumentAggregateGroupBySum() {
  70. Document document = new Document();
  71. document.put("$sum", "$age");
  72. Document sumage = new Document();
  73. sumage.put("_id", "$uname");
  74. sumage.put("sumage", document);
  75. Document group = new Document();
  76. group.put("$group", sumage);
  77. List<Document> list = new ArrayList<>();
  78. list.add(group);
  79. AggregateIterable iterable = collection.aggregate(list);
  80. MongoCursor<Document> iterator = iterable.iterator();
  81. while (iterator.hasNext()) {
  82. Document doc = iterator.next();
  83. System.out.println(doc.get("_id") + "\t" + doc.get("sumage"));
  84. }
  85. }
  86. /**
  87. * 需求:查询 devtest 集合有多少文档的 age 大于 20。
  88. * Mongo Shell:db.dev.aggregate([{$match:{size:{$gt:200}}},{$group:{_id:null,totalSize:{$sum:1}}}])
  89. */
  90. public void selectDocumentAggregateGroupByWhere() {
  91. Document match = new Document();
  92. match.put("$match", new Document("age", new Document("$gt", 20)));
  93. Document sumage = new Document();
  94. sumage.put("$sum", 1);
  95. Document two = new Document();
  96. two.put("_id", null);
  97. two.put("sumage", sumage);
  98. Document group = new Document();
  99. group.put("$group", two);
  100. List<Document> list = new ArrayList<>();
  101. list.add(match);
  102. list.add(group);
  103. AggregateIterable iterable = collection.aggregate(list);
  104. MongoCursor<Document> iterator = iterable.iterator();
  105. while (iterator.hasNext()) {
  106. Document doc = iterator.next();
  107. System.out.println(doc.get("sumage"));
  108. }
  109. }
  110. /**
  111. * 需求:查询 devtest 集合,根据 uname 分组计算出每组的 age 的总和,并过滤掉总和小于 20 的文档。
  112. * Mongo Shell:db.dev.aggregate([{$group:{_id:"$title",totalSize:{$sum:"$size"}}},{$match:{totalSize:{$gt:200}}}])
  113. */
  114. public void selectDocumentAggregateGroupByHaving() {
  115. Document match = new Document();
  116. match.put("$match", new Document("sumage", new Document("$gt", 20)));
  117. Document sumage = new Document();
  118. sumage.put("$sum", "$age");
  119. Document two = new Document();
  120. two.put("_id", "$uname");
  121. two.put("sumage", sumage);
  122. Document group = new Document();
  123. group.put("$group", two);
  124. List<Document> list = new ArrayList<>();
  125. list.add(group);
  126. list.add(match);
  127. AggregateIterable iterable = collection.aggregate(list);
  128. MongoCursor<Document> iterator = iterable.iterator();
  129. while (iterator.hasNext()) {
  130. Document doc = iterator.next();
  131. System.out.println(doc.get("_id")+"\t"+doc.get("sumage"));
  132. }
  133. }
  134. /**
  135. * 需求:查询 devtest 集合,将数组中的内容拆分显示,并只显示 uname 键与 hobby键的值。
  136. * Mongo Shell:db.dev.aggregate([{$unwind:"$tags"},{$project:{_id:0,tags:"$tags",title:"$title"}}])
  137. */
  138. public void selectDocumentProject(){
  139. Document unwind=new Document();
  140. unwind.put("$unwind","$hobby");
  141. Document show=new Document();
  142. show.put("_id",0);
  143. show.put("hobby","$hobby");
  144. show.put("uname","$uname");
  145. Document project=new Document();
  146. project.put("$project",show);
  147. List<Document> list=new ArrayList<>();
  148. list.add(unwind);
  149. list.add(project);
  150. AggregateIterable iterable = collection.aggregate(list);
  151. MongoCursor<Document> iterator = iterable.iterator();
  152. while (iterator.hasNext()) {
  153. Document doc = iterator.next();
  154. System.out.println(doc);
  155. }
  156. }
  157. /**
  158. * 需求:查询 devtest 集合,将数组中的内容拆分显示。将 uname 字段和 hobby字段的值拼接为一个完整字符串并在 uname_hooby 字段中显示。
  159. * Mongo Shell:db.dev.aggregate([{$unwind:"$tags"},{$project:{_id:0,Title_Tags:{$concat:["$title","-","$tags"]}}}])
  160. */
  161. public void selectDocumentProjectConcat(){
  162. Document unwind=new Document();
  163. unwind.put("$unwind","$hobby");
  164. Document concat=new Document();
  165. concat.put("$concat", Arrays.asList(new String[]{"$uname","_","$hobby"}));
  166. Document nh=new Document();
  167. nh.put("_id",0);
  168. nh.put("uname_hooby",concat);
  169. Document project=new Document();
  170. project.put("$project",nh);
  171. List<Document> list=new ArrayList<>();
  172. list.add(unwind);
  173. list.add(project);
  174. AggregateIterable iterable = collection.aggregate(list);
  175. MongoCursor<Document> iterator = iterable.iterator();
  176. while (iterator.hasNext()) {
  177. Document doc = iterator.next();
  178. System.out.println(doc);
  179. }
  180. }
  181. /**
  182. * 需求:查询 devtest 集合中数据,显示 uname 和 age 字段,为 age 字段数据做加 1 操作,显示字段命名为 age。排除那些没有 age 键的文档。
  183. * Mongo Shell:db.dev.aggregate([{$match:{size:{$ne:null}}},{$project:{_id:0,title:1,New_Size:{$add:["$size",1]}}}])
  184. */
  185. public void selectDocumentProjectAdd(){
  186. Document ne =new Document();
  187. ne.put("$ne",null);
  188. Document age=new Document();
  189. age.put("age",ne);
  190. Document match=new Document();
  191. match.put("$match",age);
  192. Document add=new Document();
  193. add.put("$add",Arrays.asList(new Object[]{"$age",1}));
  194. Document show =new Document();
  195. show.put("_id",0);
  196. show.put("uname",1);
  197. show.put("age",add);
  198. Document project =new Document();
  199. project.put("$project",show);
  200. List<Document> list=new ArrayList<>();
  201. list.add(match);
  202. list.add(project);
  203. AggregateIterable iterable = collection.aggregate(list);
  204. MongoCursor<Document> iterator = iterable.iterator();
  205. while (iterator.hasNext()) {
  206. Document doc = iterator.next();
  207. System.out.println(doc);
  208. }
  209. }
  210. /**
  211. * 需求:查询 devtest 集合查询那些有生日的用户,并按照 YYYY 年 mm 月dd 日 HH:MM:SS 格式显示日期。
  212. * 注意:如果直接在 MongoDB 中做日期的格式化处理,那么是按照表示 UTC时间来处理的,会少 8 个小时。建议在程序中
  213. * 通过 java.util.Date 来做日期的转换。
  214. * Mongo Shell:db.devtest.aggregate([{$match:{userbirth:{$ne:null}}},{$project:{自定义日期格式:{$dateToString:{format:"%Y 年%m 月%d日 %H:%M:%S",date:"$userbirth"}}}}])
  215. */
  216. public void selectDocumentProjectDate(){
  217. Document ne =new Document();
  218. ne.put("$ne",null);
  219. Document birth=new Document();
  220. birth.put("birth",ne);
  221. Document match=new Document();
  222. match.put("$match",birth);
  223. //{$project:{自定义日期格式:{$dateToString:{format:"%Y 年%m 月%d日 %H:%M:%S",date:"$userbirth"}}}}
  224. Document format=new Document();
  225. format.put("format","%Y 年%m 月%d日 %H:%M:%S");
  226. format.put("date","$birth");
  227. Document dateToString=new Document();
  228. dateToString.put("$dateToString",format);
  229. Document zdy=new Document();
  230. zdy.put("自定义日期格式",dateToString);
  231. Document project=new Document();
  232. project.put("$project",zdy);
  233. List<Document> list=new ArrayList<>();
  234. list.add(match);
  235. list.add(project);
  236. AggregateIterable iterable = collection.aggregate(list);
  237. MongoCursor<Document> iterator = iterable.iterator();
  238. while (iterator.hasNext()) {
  239. Document doc = iterator.next();
  240. System.out.println(doc);
  241. }
  242. }
  243. }

日期的转化工具类

  1. package com.bjsxt.mongodbdemo;
  2. import java.text.SimpleDateFormat;
  3. import java.util.Date;
  4. public class DateUtil {
  5. /**
  6. * date to string
  7. */
  8. public static String dateToString(String pattern, Date date){
  9. SimpleDateFormat spdf=new SimpleDateFormat(pattern);
  10. String format = spdf.format(date);
  11. return format;
  12. }
  13. /**
  14. * String to date
  15. */
  16. public static Date stringToDate(String pattern, String date){
  17. SimpleDateFormat spdf=new SimpleDateFormat(pattern);
  18. try {
  19. Date parse = spdf.parse(date);
  20. return parse;
  21. }catch (Exception e){
  22. e.printStackTrace();
  23. }
  24. return null;
  25. }
  26. }

俩种分页操作

  1. package com.bjsxt.mongodbdemo;
  2. import com.mongodb.client.FindIterable;
  3. import com.mongodb.client.MongoCollection;
  4. import com.mongodb.client.MongoCursor;
  5. import org.bson.Document;
  6. import org.bson.types.ObjectId;
  7. public class SelectDocumentByPage {
  8. MongoCollection collection = MongoDBPoolAuthUtil.getCollection("develop", "devtest");
  9. public static void main(String[] args) {
  10. SelectDocumentByPage docd=new SelectDocumentByPage();
  11. //docd.selectDocumentByPageUseSkipAndLimit(3);
  12. docd.selectDocumentByPageUseCondition(2,2,"5dc0d85c614f6b2730c1d0fd");
  13. }
  14. /**
  15. * 实现分页查询
  16. */
  17. public void selectDocumentByPageUseSkipAndLimit(int pageIndex){
  18. int page=(pageIndex-1)*2;
  19. Document doc=new Document("age",new Document("$ne",null));
  20. long count = collection.countDocuments(doc);
  21. System.out.println(count);
  22. FindIterable ite = collection.find(doc).limit(2).skip(page);
  23. MongoCursor<Document> iterator = ite.iterator();
  24. while (iterator.hasNext()){
  25. Document docu = iterator.next();
  26. System.out.println(docu);
  27. }
  28. }
  29. /**
  30. * 条件判断实现分页
  31. */
  32. public void selectDocumentByPageUseCondition(int pageIndex,int pageSize,String lastId){
  33. Document doc=new Document("age",new Document("$ne",null));
  34. long count = collection.countDocuments(doc);
  35. System.out.println(count);
  36. FindIterable ite =null;
  37. if (pageIndex==1){
  38. ite = collection.find(doc).limit(pageSize);
  39. }else {
  40. if (lastId!=null){
  41. doc.append("_id",new Document("$gt",new ObjectId(lastId)));
  42. ite = collection.find(doc).limit(pageSize);
  43. }
  44. }
  45. MongoCursor<Document> iterator = ite.iterator();
  46. while (iterator.hasNext()){
  47. Document docu = iterator.next();
  48. System.out.println(docu);
  49. }
  50. }
  51. }

MongoDB第四天(操作文档,添加,更新,查询以及对于日期的相关操作)的更多相关文章

  1. MongoDB(五):MongoDB操作文档

    本篇文章中将讲解如何使用MongoDB操作文档. 文档的数据结构和JSON基本一致,所有存储在集合中的数据都是BSON格式.BSON是一种类似json格式的一种二进制形式的存储格式,简称Binary ...

  2. ElasticSearch使用C#操作文档

    一.ElasticSearch的.net客户端驱动程序 ElasticSearch官方网站提供了两个.net客户端驱动程序,其中Elasticsearch.Net是一个非常底层且灵活的客户端驱动程序, ...

  3. lua的io操作文档

    2014-09-16~15:26:35 I/O库提供两种不同的方式进行文件处理1.io表调用方式:使用io表,io.open将返回指定文件的描述,并且所有的操作将围绕这个文件描述 io表同样提供三种预 ...

  4. [转载]MongoDB学习 (四):创建、读取、更新、删除(CRUD)快速入门

    本文介绍数据库的4个基本操作:创建.读取.更新和删除(CRUD). 接下来的数据库操作演示,我们使用MongoDB自带简洁但功能强大的JavaScript shell,MongoDB shell是一个 ...

  5. mongodb(四):对文档操作增删查改(python)

    连接mongodb #!/usr/bin/env python # -*- coding:utf-8 -*- import pymongo mongo_client = pymongo.MongoCl ...

  6. 从域名到网站,快速创建全新社区站点 - phpwind一键部署操作文档

    关于phpwind一键部署服务,请查阅PW官网:http://www.phpwind.com/setup.html 选择一键部署镜像版本,立即开始使用: PW建站系统(Centos 64位) ———— ...

  7. IDEA使用操作文档

    IDEA中怎么设置黑色或白色背景? http://jingyan.baidu.com/article/4e5b3e19330df191911e246b.html 一. IntelliJ IDEA  的 ...

  8. Linux常用命令操作文档

    Ls命令:列出目录内容 选项 长选项 含义 -a --all 列出所有文件,包括隐藏的文件 -d --directory 指定一个目录 -F --classify 在每个列出的名字后面加上类型指示符( ...

  9. ElasticSearch 基础入门 and 操作索引 and 操作文档

    基本概念 索引: 类似于MySQL的表.索引的结构为全文搜索作准备,不存储原始的数据. 索引可以做分布式.每一个索引有一个或者多个分片 shard.每一个分片可以有多个副本 replica. 文档: ...

随机推荐

  1. 为什么我加了索引,SQL执行还是这么慢(二)?

    接上文 在MySQL中,有一些语句即使逻辑相同,执行起来的性能差异确实极大的. 还记得我们上文中的结论吗:如果想使用索引树搜索功能,就不能使用数据库函数来处理索引字段值,而是在不改变索引字段值的同时, ...

  2. lqb 入门训练 序列求和 (PS:用长整数做数据的输入输出)

    入门训练 序列求和 时间限制:1.0s   内存限制:256.0MB     问题描述 求1+2+3+...+n的值. 输入格式 输入包括一个整数n. 输出格式 输出一行,包括一个整数,表示1+2+3 ...

  3. 初识JVM内存模型

    计算机内存模型 在程序运行时,CPU通过访问主存获取数据,但随着CPU的快速发展,CPU访问速度越来越高,硬件无法满足CPU的条件下,大多内存加入了高速缓存机制,不同CPU都有对应的多级(一般为三)缓 ...

  4. [机器学习笔记]kNN进邻算法

    K-近邻算法 一.算法概述 (1)采用测量不同特征值之间的距离方法进行分类 优点: 精度高.对异常值不敏感.无数据输入假定. 缺点: 计算复杂度高.空间复杂度高. (2)KNN模型的三个要素 kNN算 ...

  5. Win32 COM组件 x Android Service (二)

    继续上一篇. 如果不使用AIDL(Android Interface Definition Language接口描述语言)编写服务接口的话,(COM组件,CORBA组件,ICE组件以及其它远程调用框架 ...

  6. python_day05

    今日内容 ''' post请求登录github Request URL: https://github.com/session Request Method: POST #Referer表示上一个请求 ...

  7. Java——内部类详解

    说起内部类,大家肯定感觉熟悉又陌生,因为一定在很多框架源码中有看到别人使用过,但又感觉自己使用的比较少,今天我就带你具体来看看内部类. 内部类基础 所谓内部类就是在类的内部继续定义其他内部结构类. 在 ...

  8. ecryptfs

    ecryptfs是一种加密文件系统.该文件系统的内容在传输和储存时以密文形式存在.只有在mount时用密钥解密才能得到明文.利用这个特性,我们可以用他来对软件镜像中的部分敏感文件系统进行加密,然后打包 ...

  9. Spring基于注解的配置1——@Required、@Autowired、@Qualifier示例及与传统注入方法的对比

    @Required注释 作用:用于属性的set方法,那么这个属性必须在xml文件的bean标签里面进行配置,否则就会抛出一个BeanInitializationException异常. 首先准备一个类 ...

  10. Java基础知识总结之垃圾回收机制

    垃圾回收机制 Java垃圾回收机制是Java语言的重要功能之一.当程序创建对象,数组等引用类型对象时,系统会自动在内存区为之分配一块内存,对象就保存在这块内存区内,当这块内存不再被任何变量引用时,这块 ...