一个成功的案例参考:https://blog.csdn.net/leinminna/article/details/100741502
mongoTemplate常用方法汇总:https://blog.csdn.net/leinminna/article/details/101277443
mongoDB 分页查询
Query query = new Query();
//设置起始数
query.skip((pageNum - 1) * pageSize);
//设置查询条数
query.limit(pageSize);
query.addCriteria(new Criteria().where("formId").is(formId));
//查询当前页数据集合
List
mongoDB 查询语句:
db.getCollection("formData").find({ "_id" : NumberLong("1177151146112978944")}); // 点击集合,根据id查询文档
db.testMongo_t.find()//查询整个集合
db.testMongo_t.find({"status":{$in:[4,5,6,7]}})//单个条件查询
db.testMongo_t.find({"status":{$in:[4,5,6,7]},"name":"haiNun1"})//并且语句查询;
db.testMongo_t.find({//或语句查询
$or:[
{"status":{$in:[4,5,6,7]}},
{"status":1},
{"name":"haiNun1"}
]
})
db.testMongo_t.find({//and 加上 or 一起查询
"status":{$in:[4,5,6,7]},
$or:[{"status":{$lt:6}},{"name":"haiNun"}]
})
db.xx.find({},{"article.text":1}).sort({time:1})
db.yyy.aggregate([
{ $unwind: '$Articles' },
{
$project: {
_id: 0,
Author: 1,
Title: '$Articles.Title',
PostTime: '$Articles.PostTime'
}
},
{ $sort: { PostTime: -1 } }
]);
insert 语句:
db.testMongo_t.insertOne({"name":"lisha","gender":"f","weight":123,"height":170})
db.testMongo_t.insertMany([{"name":"lisha","gender":"f","weight":123,"height":170},{"name":"haiNun","gender":"f","weight":321,"height":120},{"name":"wagwei","gender":"m","weight":1223,"height":245}])
update语句:
db.testMongo_t.updateOne(//根据name修改status
{
"name":"lemin"
},
{
$set:{
"status":2
}
}
)
db.testMongo_t.updateOne(//根据name修改status,添加degree和修改时间
{
"name":"lisha"
},
{
$set:{
"status":3,
"degree":1
},
$currentDate:{lastModified:true}
}
)
db.testMongo_t.updateMany(//根据status批量修改;
{
"status":null
},
{
$set:{
"status":11,
"degree":2
},
$currentDate:{lastModified:true}
}
)
db.testMongo_t.updateMany(//按条件自增100,-100(自减)
{"status":{$lt:6}},
{$inc: {"status": 100},
$currentDate:{lastModified:true}
}
)
db.testMongo_t.updateMany(//按条件自增100,-100(自减)
{"status":{$gt:100}},
{$inc: {"status": -100},
$currentDate:{lastModified:true}
}
)
mongo删除语句:
db.testMongo_t.deleteMany({})//删除集合中的所有
db.testMongo_t.deleteMany({"status":2})//按条件删除集合中的元素
db.testMongo_t.deleteOne({"name":"lemin"})//按条件删除集合中的元素
repalce 语句:
db.testMongo_t.replaceOne(
{
"name":"lemin"
},{
"status":120
}
)
其他操作语句
db.user.remove();//删除文档中的所有数据;集合,索引不会删除,速度慢;无法恢复
db.drop_collction("user"). //不能附带条件,//删除集合所有;
db.user.find_one();//同remove
db.user.findOne({"name":""});
db.user.find();//查询集合所有文档
db.user.find("userName":"joe","age":23);
db.user.find({},{"userName":1,"email":1});//指定返回的结果集只有id,userName和email字段;
db.user.find({},{"fatal_weakness":0});//指定返回结果没有fatal_weakness字段;也用以防止id返回
db.user.find({"age":{"$gte":18,"lt":32}})//范围查询
db.user.find({"userName":{"$ne":"joe"}})//不等于
db.user.find({"ticket_no":{"$in":[725,234,345]}});//集合内匹配
db.user.find({"ticket_no":{"$nin":[725,234,345]}});//非集合匹配
db.user.find({"$or":[{"ticketNo":645},{"winner":true}]})
db.user.find({"$or":[{"ticket_no":{"$in":[725,234,345]}},{"winner":true}]})
db.user.find({"id":{"$mod":[5,1]}})//查询id按照5取模余1的元素;
db.user.find({"id":{"$not":{"$mod":[5,1]}}})//查询id按照5取模非余1的元素;
db.user.update({},{"$inc":{"age":1},"$set":{"age":40}})//错误操作!!一个键不能对应多个修改器
db.user.find({"y":null})//查询y为空,或没有y 键的对象;
db.user.find({"y":{"$in":[null],"$exists":true}})//查询y为空的对象;
db.user.update({},{"$inc":{"x":1}}) //所有元素的x属性加1
db.user.update({"id":123},{"$set":{"name":"qwer"}});//增加/删除/修改键的时候使用$set修改器;"$addToSet"避免重复,不在才添加(可以在使用"$each"时,同时使用"$addToSet",以实现给数组中的每个元素添加元素,避免重复)
db.user.update({"id":123},{"$inc":{"score":100}});"$inc" 只用于数字增加;
db.user.update({"id":123},{"$push":{"comments":{xxxx}}});//没有直接添加;与update()比较太慢;
db.user.update({"id":123},{"$pull":{"comments":{xxxx}}});//删除所有匹配评论;
db.user.update({"id":123},{"$pop":{"comments":-1/1}})从数组头部删除/从数组尾部删除一个元素;
db.user.update({"id":123},{"$inc":{"comments.0.votes":1}})//将第一条comments的votes,加一;
db.user.update({"comments.author":"sam"},{"$set":{"comments.$.author":"jan"}})//修改comments数组中第一个匹配author=sam ,的元素,的author为jan
db.user.upsert({},{})
更新多个文档;
返回已更新文档;
db.user.find({"status":"ready"}).sort({"priority":-1}).limit(1);//查询分页排序
getLastError 检查程序是否执行成功;
db.runCommand({"findAndModify":"processes",
"query":{"status":"READY"},
"sort":{{"priority":-1}},
"remove":true
}).value