参考官网:
https://docs.mongodb.org/getting-started/java
MongoCollection <Document > mongoCollection = db .getCollection ("restaurants" );
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import static java.util.Arrays.asList;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
db.getCollection("restaurants").insertOne(
new Document("address",
new Document()
.append("street", "2 Avenue")
.append("zipcode", "10075")
.append("building", "1480")
.append("coord", asList(-73.9557413, 40.7720266)))
.append("borough", "Manhattan")
.append("cuisine", "Italian")
.append("grades", asList(
new Document()
.append("date", format.parse("2014-10-01T00:00:00Z"))
.append("grade", "A")
.append("score", 11),
new Document()
.append("date", format.parse("2014-01-16T00:00:00Z"))
.append("grade", "B")
.append("score", 17)))
.append("name", "Vella")
.append("restaurant_id", "41704620"));
new Document("borough", "Manhattan"));
new Document("address.zipcode", "10075"));
new Document("grades.grade", "B"));
gt(<field>, <value>)
.sort(new Document("borough", 1).append("address.zipcode", 1));
new Document("$set", new Document("cuisine", "American (New)"))
.append("$currentDate", new Document("lastModified", true)));
new Document("$set", new Document("address.street", "East 31st Street")));
new Document("$set", new Document("cuisine", "Category To Be Determined"))
.append("$currentDate", new Document("lastModified", true)));
new Document("address",
new Document()
.append("street", "2 Avenue")
.append("zipcode", "10075")
.append("building", "1480")
.append("coord", asList(-73.9557413, 40.7720266)))
.append("name", "Vella 2"));
初次使用MongoDB,大概的写一下如何在Java中应用MongoDB进行数据的增删改查。
关于MongoDB的介绍就不细说了,各位可以自行在官网查看或者百度搜索。
1.连接MongoDB数据库
MongoClient mongoClient = new MongoClient( "127.0.0.1" , 27017 );
MongoDatabase db = mongoClient. getDatabase( "Rests" );
MongoCollection <Document > mongoCollection = db .getCollection ("restaurants" );
数据document模板
{
"address": {
"building": "1007",
"coord": [ -73.856077, 40.848447 ],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
}
"address": {
"building": "1007",
"coord": [ -73.856077, 40.848447 ],
"street": "Morris Park Ave",
"zipcode": "10462"
},
"borough": "Bronx",
"cuisine": "Bakery",
"grades": [
{ "date": { "$date": 1393804800000 }, "grade": "A", "score": 2 },
{ "date": { "$date": 1378857600000 }, "grade": "A", "score": 6 },
{ "date": { "$date": 1358985600000 }, "grade": "A", "score": 10 },
{ "date": { "$date": 1322006400000 }, "grade": "A", "score": 9 },
{ "date": { "$date": 1299715200000 }, "grade": "B", "score": 14 }
],
"name": "Morris Park Bake Shop",
"restaurant_id": "30075445"
}
2.Insert Data--增加数据
import org.bson.Document;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Locale;
import static java.util.Arrays.asList;
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.ENGLISH);
db.getCollection("restaurants").insertOne(
new Document("address",
new Document()
.append("street", "2 Avenue")
.append("zipcode", "10075")
.append("building", "1480")
.append("coord", asList(-73.9557413, 40.7720266)))
.append("borough", "Manhattan")
.append("cuisine", "Italian")
.append("grades", asList(
new Document()
.append("date", format.parse("2014-10-01T00:00:00Z"))
.append("grade", "A")
.append("score", 11),
new Document()
.append("date", format.parse("2014-01-16T00:00:00Z"))
.append("grade", "B")
.append("score", 17)))
.append("name", "Vella")
.append("restaurant_id", "41704620"));
3.Find or Query DAta --- 查找数据
import org.bson.Document;
import com.mongodb.Block;
import com.mongodb.client.FindIterable;
import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Sorts.ascending;
import static java.util.Arrays.asList;
import com.mongodb.Block;
import com.mongodb.client.FindIterable;
import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Sorts.ascending;
import static java.util.Arrays.asList;
- find() -- 查找collection所有数据
//---遍历---
iterable.forEach(new Block<Document>() {
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
@Override
public void apply(final Document document) {
System.out.println(document);
}
});
- find(new Document( <field>, <value> )) 或者find(eq( <field>, <value> )) --- 条件查找
new Document("borough", "Manhattan"));
或者
db.getCollection("restaurants").find(eq("borough", "Manhattan"));
遍历与以上相同
- 查找内嵌document 方法 address.zipcode
new Document("address.zipcode", "10075"));
或者
db.getCollection("restaurants").find(eq("address.zipcode", "10075"));
遍历与以上类似
- 内嵌数组查询
new Document("grades.grade", "B"));
或者
db.getCollection("restaurants").find(eq("grades.grade", "B"));
- 属性比较 lt gt
gt(<field>, <value>)
使用
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("grades.score", new Document("$gt", 30)));
new Document("grades.score", new Document("$gt", 30)));
或者
db.getCollection("restaurants").find(gt("grades.score", 30));
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("grades.score", new Document("$lt", 10)));
new Document("grades.score", new Document("$lt", 10)));
或者
db.getCollection("restaurants").find(lt("grades.score", 10));
- 混合条件查询 and or
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("cuisine", "Italian").append("address.zipcode", "10075"));
new Document("cuisine", "Italian").append("address.zipcode", "10075"));
或者
db.getCollection("restaurants").find(and(eq("cuisine", "Italian"), eq("address.zipcode", "10075")));
or查询
FindIterable<Document> iterable = db.getCollection("restaurants").find(
new Document("$or", asList(new Document("cuisine", "Italian"),
new Document("address.zipcode", "10075"))));
new Document("$or", asList(new Document("cuisine", "Italian"),
new Document("address.zipcode", "10075"))));
或者
db.getCollection("restaurants").find(or(eq("cuisine", "Italian"), eq("address.zipcode", "10075")));
- sort排序 1--升序 -1--降序
.sort(new Document("borough", 1).append("address.zipcode", 1));
或者
db.getCollection("restaurants").find().sort(ascending("borough", "address.zipcode"));
4.更新数据 update
更新有是三种方法 updateOne() updateMany() replaceOne()
import org.bson.Document;
import static java.util.Arrays.asList;
import static java.util.Arrays.asList;
- updateOne()使用
-
- 如果查出的是列表,则默认更新的是第一个document
new Document("$set", new Document("cuisine", "American (New)"))
.append("$currentDate", new Document("lastModified", true)));
-
- 根据条件详细查找单个对象更新内容
new Document("$set", new Document("address.street", "East 31st Street")));
- updateMany()使用
new Document("$set", new Document("cuisine", "Category To Be Determined"))
.append("$currentDate", new Document("lastModified", true)));
- replaceOne()使用
new Document("address",
new Document()
.append("street", "2 Avenue")
.append("zipcode", "10075")
.append("building", "1480")
.append("coord", asList(-73.9557413, 40.7720266)))
.append("name", "Vella 2"));
5.Remove Data--删除数据
主要用deleteOne()和deletemany()两个方法删除数据
- deleteMany()--删除符合条件的数据
删除所有数据 :
db.getCollection("restaurants").deleteMany(new Document());
- deleteOne()--根据特定条件查找出单个数据删除
- drop() -- 删除collection
这里只是初级应用,复杂一点的后续了解再记录。