1.创建数据库的连接,进行增删改查

(分别为接口和实现类)

@Repository

public class RepositoryImpl implements AbstractRepository {

@Autowired

private MongoTemplate mongoTemplate;

// 查询所有数据

public List findAll(Class entity) {

return mongoTemplate.findAll(entity);

}

// 更新数据

public Company findOne(String id, Class entity) {

return (Company) mongoTemplate.findOne(new Query(Criteria.where("id")

.is(id)), entity);

}

// 添加到数据库

public void updateEntity(Company company) {

mongoTemplate.save(company);

}

// 删除选中的数据

public void delete(String id, Class class1) {

Criteria criteria = Criteria.where("id").in(id);

if (criteria != null) {

Query query = new Query(criteria);

if (query != null && mongoTemplate.findOne(query, class1) != null)

mongoTemplate.remove(mongoTemplate.findOne(query, class1));

}

}

//增加到数据库

public void insert(Company company) {

mongoTemplate.insert(company);

}

}
public interface AbstractRepository {

public List findAll(Class entity);

public Company findOne(String id,Class entity);

public void updateEntity(Company company);

public void delete(String id, Class class1);

public void insert(Company company);

}

Mongodb 中关键字种类:

  • db(数据库实例级别)
  • db 本身
  • db.connection 数据库下的集合信息
  • db.collection.xxx(
  • rs(复制集级别)
  • sh(分片级别)

db.userinfo.insert()        //db+表名+insert({}或者[])可以实现插入一条数据或者多个数据,多条数据要用数组方式插入
db.userinfo.insertOne() 	//只能插入一条数据,并且是对象型数据
db.userinfo.insertMany()  	//数据只能接受数组
db.userinfo.save() 			//此方法与insert方法类似  

插入操作,使用最多的就是insert()方法,可以根据需求插入一条数据或者多条数据

db.userinfo.deleteOne({})             //删除一条数据
db.userinfo.deleteMany({})            //删除多条数据
db.userinfo.remove({},n)            //可以删除多条数据,n代表删除第一条数据    
db.dropDatabase();                    //删库跑路基本操作(谨慎使用)
db.users.drop();                    //删除指定的表(谨慎使用)

使用最多的还是remove()方法,后面的参数n是指删除第一条数据,不带参数,删除所有

db.userinfo.update({},{$set:{}},true)        //接收两个参数,第一个参数是条件,第二个参数是修改的数据,此方法支持修改一条数据和多条数据(修改多条数据时,第二个参数为true)
db.userinfo.updateOne({},{$set:{}})        //只能修改一条数据
db.userinfo.updateMany({},{$set:{}})    //修改多条数据

修改操作,使用最多的是update()方法,可以支持单条数据修改,也可以支持多条数据修改


db.userinfo.find() //查看表所有数据

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐