mongoDB 原生查询语句
时间:2019-05-17 13:33 来源:linux.it.net.cn 作者:IT
mongoDB 分页查询
Query query = new Query();
//设置起始数
query.skip((pageNum - 1) * pageSize);
//设置查询条数
query.limit(pageSize);
query.addCriteria(new Criteria().where("formId").is(formId));
//查询当前页数据集合
List<FormData> formDatas = mongoTemplate.find(query, FormData.class);
mongoDB 查询语句:
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
(责任编辑:IT)
mongoDB 分页查询 Query query = new Query(); //设置起始数 query.skip((pageNum - 1) * pageSize); //设置查询条数 query.limit(pageSize); query.addCriteria(new Criteria().where("formId").is(formId)); //查询当前页数据集合 List<FormData> formDatas = mongoTemplate.find(query, FormData.class); mongoDB 查询语句: 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 (责任编辑:IT) |