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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章