记录一下SpringData+MongoDB是怎么操作的。
(1)启动mongoDB
我使用的指令是:(按照官网的)
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
端口是27017.
输入mongo回车便可进入mongoDB Shell操作界面。
(2)基本指令:
查看所有数据库:
show dbs
使用某个数据库:
use 数据库名称
查看所有集合:
show tables
查看某个集合的全部数据:
db.集合名.find().pretty()
(3)在Spring Data里使用:
1)实体类:
要有@Document注解
package com.example.demo.model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
import java.io.Serializable;
import java.util.Arrays;
@Document("LocationDto")
public class LocationDto implements Serializable {
@Id
private String id;
// @Field("car_number")
// private String carNumber;
@Field("latitude")
//纬度
private Double latitude;
@Field("longitude")
//经度
private Double longitude;
// @Field("locate_date")
// private Date locateDate;
@Field("location")
private Double[] location;
@Override
public String toString() {
return "TraceDto{" +
"id='" + id + '\'' +
", latitude=" + latitude +
", longitude=" + longitude +
", gps=" + Arrays.toString(location) +
'}';
}
public LocationDto(String id, Double latitude, Double longitude, Double[] gps) {
this.id = id;
this.latitude = latitude;
this.longitude = longitude;
this.location = gps;
}
public LocationDto(Double longitude, Double latitude, Double[] gps) {
this.latitude = latitude;
this.longitude = longitude;
this.location = gps;
}
public LocationDto() {
}
public LocationDto(String id) {
this.id = id;
}
public Double[] getGps() {
return location;
}
public void setGps(Double[] gps) {
this.location = gps;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Double getLatitude() {
return latitude;
}
public void setLatitude(Double latitude) {
this.latitude = latitude;
}
public Double getLongitude() {
return longitude;
}
public void setLongitude(Double longitude) {
this.longitude = longitude;
}
}
2)操作数据库类:
继承自MongoRepository
package com.example.demo.mapper;
//import com.example.tracedomain.domain.TraceDto;
import com.example.demo.model.LocationDto;
import org.springframework.data.mongodb.repository.MongoRepository;
public interface LocationDtoRepository extends MongoRepository<LocationDto,String> {
}
3)配置文件:
uri的写法:操作该数据库的用户:密码@ip:端口/数据库名称
data:
mongodb:
uri: mongodb://kimiLocationDto:123456@localhost:27017/LocationDto
auto-index-creation: true
参考该博客:
MongoDB的用户创建更新及删除 : https://www.jianshu.com/p/f5afc6488f9e
为某个数据库创建用户:
进入该数据库,执行:
db.createUser({user:'用户名称',pwd:'用户密码',roles:[{role:'readWrite',db:'数据库名称'}]})
进入admin数据库查看新创建的用户:
use admin
db.system.users.find().pretty()