mongodb java spring_mongoDb +Java+springboot

packagecom.ycmedia.utils;importjava.net.UnknownHostException;importjava.util.HashMap;importjava.util.List;importjava.util.Map;importorg.bson.types.ObjectId;importcom.mongodb.BasicDBObject;importcom.mongodb.DB;importcom.mongodb.DBCollection;importcom.mongodb.DBObject;importcom.mongodb.Mongo;importcom.mongodb.MongoException;

@SuppressWarnings("deprecation")public final classMongoDbUtil {private static final String HOST = "180.97.75.185:38017";private static final String dbName = "yc";private staticMongo mongo;private staticDB db;static{try{

mongo= newMongo(HOST);

db=mongo.getDB(dbName);//db.authenticate(username, passwd)

} catch(UnknownHostException e) {

e.printStackTrace();

}catch(MongoException e) {

e.printStackTrace();

}

}privateMongoDbUtil() {

}/*** 添加操作

*

*@parammap

*@paramcollectionName*/

public static void add(Mapmap, String collectionName) {

DBObject dbObject= newBasicDBObject(map);

getCollection(collectionName).insert(dbObject);

}/*** 添加操作

*

*@paramlist

*@paramcollectionName*/

public static void add(List>list, String collectionName) {for (Mapmap : list) {

add(map, collectionName);

}

}/*** 删除操作

*

*@parammap

*@paramcollectionName*/

public static void delete(Mapmap, String collectionName) {

DBObject dbObject= newBasicDBObject(map);

getCollection(collectionName).remove(dbObject);

}/*** 删除操作,根据主键

*

*@paramid

*@paramcollectionName*/

public static voiddelete(String id, String collectionName) {

Map map = new HashMap();

map.put("_id", newObjectId(id));

delete(map, collectionName);

}/*** 删除全部

*

*@paramcollectionName*/

public static voiddeleteAll(String collectionName) {

getCollection(collectionName).drop();

}/*** 修改操作

* 会用一个新文档替换现有文档,文档key结构会发生改变

* 比如原文档{"_id":"123","name":"zhangsan","age":12}当根据_id修改age

* value为{"age":12}新建的文档name值会没有,结构发生了改变

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void update(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {returnvalueDBObject;

}

});

}/*** 修改操作,使用$set修改器

* 用来指定一个键值,如果键不存在,则自动创建,会更新原来文档, 不会生成新的, 结构不会发生改变

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void updateSet(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {return new BasicDBObject("$set", valueDBObject);

}

});

}/*** 修改操作,使用$inc修改器

* 修改器键的值必须为数字

* 如果键存在增加或减少键的值, 如果不存在创建键

*

*@paramwhereMap

*@paramvalueMap

*@paramcollectionName*/

public static void updateInc(Map whereMap, MapvalueMap, String collectionName) {

executeUpdate(collectionName, whereMap, valueMap,newUpdateCallback(){publicDBObject doCallback(DBObject valueDBObject) {return new BasicDBObject("$inc", valueDBObject);

}

});

}/*** 修改

*

*@paramcollectionName

*@paramwhereMap

*@paramvalueMap

*@paramupdateCallback*/

private static voidexecuteUpdate(String collectionName, Map whereMap, Map valueMap, UpdateCallback updateCallback) {

DBObject whereDBObject= newBasicDBObject(whereMap);

DBObject valueDBObject= newBasicDBObject(valueMap);

valueDBObject=updateCallback.doCallback(valueDBObject);

getCollection(collectionName).update(whereDBObject, valueDBObject);

}interfaceUpdateCallback {

DBObject doCallback(DBObject valueDBObject);

}/*** 获取集合(表)

*

*@paramcollectionName

*@return

*/

public staticDBCollection getCollection(String collectionName) {returndb.getCollection(collectionName);

}public static voidmain(String[] args) {

DBCollection collection= getCollection("url");

BasicDBObject queryObject= new BasicDBObject("urlMd5","bfa89e563d9509fbc5c6503dd50faf2e");

DBObject obj=collection.findOne(queryObject);

System.out.println(obj);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoDB 中进行多条件查询可以使用 MongoDB 的查询语法来实现,结合 Spring Boot 可以更方便地操作数据库。以下是一个示例代码: 首先,在 pom.xml 文件中添加 MongoDB 的依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> ``` 接下来,创建一个实体类,用于映射 MongoDB 中的集合: ```java import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "my_collection") public class MyEntity { @Id private String id; private String field1; private String field2; // 其他字段省略... // Getter 和 Setter 方法省略... } ``` 然后,创建一个继承自 MongoRepository 的接口,用于执行查询操作: ```java import org.springframework.data.mongodb.repository.MongoRepository; public interface MyEntityRepository extends MongoRepository<MyEntity, String> { List<MyEntity> findByField1AndField2(String field1, String field2); // 其他查询方法省略... } ``` 最后,在你的业务逻辑中使用该接口进行查询操作: ```java import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service; @Service public class MyService { private final MyEntityRepository repository; @Autowired public MyService(MyEntityRepository repository) { this.repository = repository; } public List<MyEntity> queryByConditions(String field1, String field2) { return repository.findByField1AndField2(field1, field2); } } ``` 以上代码示例中,findByField1AndField2 方法会根据 field1 和 field2 的值进行多条件查询,并返回满足条件的实体对象列表。 需要注意的是,以上示例仅提供了一种常见的多条件查询方式,你可以根据具体的业务需求,使用其他查询方法或者自定义查询方法。具体的查询语法和使用方式可以参考 Spring Data MongoDB 的文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值