3.0MongoDB对一个collection的常用操作
来源:互联网 发布:vm12 mac os 编辑:程序博客网 时间:2024/04/27 19:36
获取数据操作:
MongoDatabase database = mongoClient.getDatabase("testdb");
获取一个collection:
MongoCollection<Document> collection = database.getCollection("test");
1、插入一条数据:
命令:
db.test.insert(
{ "name" : "MongoDB", "type" : "database", "count" : 1, "info" : { x : 203, y : 102 } });
java:
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("info", new Document("x", 203).append("y", 102));
collection.insertOne(doc);
2、批量插入数据:
List<Document> documents = new ArrayList<Document>();
Document doc = new Document("name", "MongoDB")
.append("type", "database")
.append("count", 1)
.append("info", new Document("x", 203).append("y", 102));
for (int i = 0; i < 100; i++) {
documents.add(doc );
}
collection.insertMany(documents);
3、查询所有记录
MongoCursor<Document> cursor = collection.find().iterator();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next().toJson());
}
} finally {
cursor.close();
}
cursor =collection.find(eq("i", 71))
5、查询大于、小于、等于、大于等于、小于等于某一条件的记录,以及查询某一范围的记录
cursor = collection.find(gt("i", 50)).iterator();
cursor = collection.find(new Document("i",new Document("$gt",50))).iterator();
cursor = collection.find(lt("i", 50)).iterator();
cursor = collection.find(new Document("i",new Document("$lt",50))).iterator();
cursor = collection.find(gte("i", 50)).iterator();
cursor = collection.find(new Document("i",new Document("$gte",50))).iterator();
cursor = collection.find(lte("i", 50)).iterator();
cursor = collection.find(new Document("i",new Document("$lte",50))).iterator();
cursor = collection.find(and(gt("i", 50), lte("i", 100))).iterator();
cursor = collection.find(new Document("i",new Document("$lte",50).append("$gt",40))).iterator();
6、将查询结果放在set中
Block<Document> printBlock = new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document.toJson());
}
};
collection.find(gt("i", 50)).forEach(printBlock);
7、对查询结果排序
myDoc = collection.find(exists("i")).sort(descending("i")).first();
或者myDoc = collection.find(exists("i")).sort(new Document("i",-1)).first();
1或者-1表示升序或者降序
8、定制返回的字段
myDoc = collection.find().projection(excludeId()).first();//不返回id
myDoc = collection.find().projection(new Document("name",1).append("type",0)).first();//不返回type,返回name
9、更新文档,MongoDB有很多修改器
更新一个文档:collection.updateOne(eq("i", 10), new Document("$set", new Document("i", 110)));//将i=10的记录中i设置为110
更新多个文档:
UpdateResult updateResult = collection.updateMany(lt("i", 100),
new Document("$inc", new Document("i", 100)));//将i<100的记录i都加上100
System.out.println(updateResult.getModifiedCount());
10、删除文档
collection.deleteOne(eq("i", 110));
DeleteResult deleteResult = collection.deleteMany(gte("i", 100));
11、批量操作
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
writes.add(new InsertOneModel<Document>(new Document("_id", 4)));
writes.add(new InsertOneModel<Document>(new Document("_id", 5)));
writes.add(new InsertOneModel<Document>(new Document("_id", 6)));
writes.add(new UpdateOneModel<Document>(new Document("_id", 1), new Document("$set", new Document("x", 2))));
writes.add(new DeleteOneModel<Document>(new Document("_id", 2)));
writes.add(new ReplaceOneModel<Document>(new Document("_id", 3), new Document("_id", 3).append("x", 4)));
collection.bulkWrite(writes);//顺序执行
collection.bulkWrite(writes,new BulkWriteOptions().ordered(false));//不保证按照顺序执行
0 0
- 3.0MongoDB对一个collection的常用操作
- mongoVUE对mongodb常用的基础操作
- java 对 mongodb的 常用操作
- mongoDB基础操作,对表的常用操作
- java对mongodb的and, in, or 常用操作
- 那位帮忙提供一个java mongodb多个collection进行mapreduce的操作。
- mongodb的常用 操作
- MongoDB的常用操作
- java对mongodb的操作
- MongoDB常用的操作命令
- MongoDB 的基本常用操作
- MongoDB常用的操作命令
- 理论---mongoDB的常用操作
- 常用的 MongoDB 操作命令
- mongodb中聚类中常用的操作
- spring-data-mongodb 对于collection的upsert操作
- Python操作MongoDB 新建不同的collection 批量插入数据库
- 【java】Collection常用操作
- gradle eclipse web模板项目构建
- 3.0创建mongoDB客户端链接
- 2,XCode的快捷键
- 剑指offer之65 滑动窗口的最大值问题
- Andrid的网络开发技术
- 3.0MongoDB对一个collection的常用操作
- leetcode-Remove Linked List Elements
- 汉字转拼音
- B - 四月纲领 light oj 1245【数论】
- 基于Smack3.0.4+ Openfire3.10.2下学习开发IM(四)用户分组操作:添加和删除分组、好友添加指定分组和不指定分组(Roster、RosterGroup和RosterEntry)
- 每天学一点(一)
- 插件问题
- hdoj 3766 Knight's Trip 【】
- c++rand()与srand()的使用