記錄一下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()