1. 程式人生 > >mongodb及mongoTemplate 一些簡單記錄

mongodb及mongoTemplate 一些簡單記錄

//時間區間
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