mongodb及mongoTemplate 一些簡單記錄
阿新 • • 發佈:2019-01-09
//時間區間
Criteria.where("time").gte(weekStartDate).lte(weekEndDate);
//正則匹配以val開始不包含本身的字元
Criteria.where("val").regex("^" + val + ".+");
//查詢in列表,結果不一定會按照id順序排列
Criteria.where("id").in("08197f93a6b742faa694e94b23c4e105", "3332061db4a04555b23d91a1b3011c6f", "b1ff303ebc844e968c60f8802bea1356")
Query query = new Query(criteria);
List <User> list = mongoTemplate.find(query, User.class);
//欄位改名
db.getCollection('article').update({}, {$rename: {userAge: "age"}}, {multi: true})
//更新集合全部欄位值
db.area.update({}, {$set: {alias: null}}, {multi: true})
//刪除指定條件後的資料
db.user.remove({role:"客服", ctime: {$gte: ISODate("2018-04-21T08:30:53.454Z" )}}, {justOne: false})
//通過forEach更新資料
db.user.find({code: {$ne: null}}).forEach(
function(item){
//通過update更新
db.user.update({"_id":item._id},{"$set": {"username": item.tel, state: NumberInt
(1)}},false,true)
//也可以通過save方法更新
/*
item.username = item.tel
item.state = NumberInt(1)
db.user.save(item)
*/
}
)
//查詢指定時間後的資料
db.user.find({role:"客服", ctime: {$gte: ISODate("2018-04-21T08:30:53.454Z")}})
//通過聚合抽出指定個數的資料
db.answers.aggregate([
{ $sample: { size: 20 }}
])
//查詢非空陣列(最少有一個元素)
db.user.find({"photos":{$elemMatch:{$ne:null}}})
db.user.find({"photos.0":{$exists: true}})
db.user.find({"photos":{$gt: []}})
db.user.find({"photos":{$not: {$size: 0}}})
db.user.find({$where: function() {
return this.photos && this.photos.length > 0
}});
使用mongoexport匯出
//無帳號密碼時
/Users/joker/mongo/bin/mongoexport -h 127.0.0.1 -d school -c user -o /Users/joker/db_export/user.json
//有帳號時,將會提示輸入密碼
/Users/joker/mongo/bin/mongoexport -h 127.0.0.1 -u root -d school -c user -o /Users/joker/db_export/user.json
使用mongoimport 匯入
//無帳號密碼時
/Users/joker/mongo/bin/mongoimport -h 127.0.0.1 -d school -c user --file /Users/joker/db_export/user.json
//有帳號時,將會提示輸入密碼
/Users/joker/mongo/bin/mongoimport -h 127.0.0.1 -u root -d school -c user --file /Users/joker/mongo