1.文档的增删改查
//插入(json格式存储bson),显示writeResult就成功了
db.xxcollection.insert({"_id":"1","ngs":"aaa","time":new Date()}) //json的格式
//查询所有
db.xxcollection.find()
//查看全部集合
show collections
//直接插入数组(多个对象)
db.xxcollection.insertMany([
{"_id":"1","ngs":"aaa","time":new Date()},
{"_id":"2","ngs":"aaa","time":new Date()}
])
//查询特定的
db.xx.find({"_id":"1"})
//查询特定的字段 类比mysql,后面一个括号代表 0排除还是1不排除 ,默认显示_id, 相当于select _id,ngs from xx;
db.xx.find({_id:"1"},{_id:0,ngs:1})
//只查一条,相当于mysql的limit 1
db.xx.findOne({ngs:"aaa"}) //插入后自动变对象
2.异常
try{ //插入可能会报异常,我们故意设置一个重复的_id ,???没啥卵用
db.xxcollection.insert({"_id":"1","ngs":"aaa","time":new Date()})
}catch(e){
print(e);
}
3.文档数据的更新
//覆盖修改,需要数据转换为int类型,(感觉是个坑爹之处,对象还要转成对应的数据才能更改,b站网友:6.0以后不用转对象)
db.xx.update(条件,更新的数据)
db.comment.update({_id:"1001"},{"articleid":"1000121"})) //直接覆盖之前的
db.comment.update({_id:"1001"},{"articleid":1000121}) //这是类型不同
//局部修改
db.comment.update({"_id":"2"},{$set:{"articleid":998}})
//只修改1003的一条 multi代表如果有多条数据就修改多条
db.comment.update({userid:"1003"},{$set:{nickname: "zs"}})
//修改998的全部数据,必须数据类型一一对应才能改
db.comment.update({articleid:998}, {$set: {"articleid":"9999"}} , {multi:true} )
//自动增长
db.comment.update({_id:"1"},{$inc:{"articleid":1}});
4.文档数据的删除 集合(数据库)—>文档(表)
db.comment.remove({_id:"1"})
//全部删除,删库跑路
db.xx.remove({})
5.分页查询
//查看有多少条,相当于mysql select count(*) from comment;
db.comment.count()
//带条件
db.comment.count({articleid:"998"})
//限制条数,查前2条
db.comment.find().limit(2);
//skip跳过前2条,就是第二页(假设每页2个数据)
db.comment.find().limit(2).skip(2);
6.排序查询必须先find后sort()
//升序1 降序-1 ,相当于mysql select * from stu order by id desc;
//下面是基于先userId降序后,后面相同的likenum升序(如果前面id相同的话)
db.comment.find().sort(userId:-1,likenum:1);
7.正则查询
db.comment.find({content: /开水/})
8.比较查询
//$gt大于 $lt小于 $eq等于 $ne不等于 $gte大于等于 $lte小于等于
db.comment.find({likenum:{$gt:888}});
9.包括
db.comment.find({_id:{$in:["2","3","4"]}});
10.条件查询???
//大于等于700小于2000
db.comment.find(
{
$and:[
{
likenum:
{
$gte:NumberInt(700)
}
} ,
{
likenum:
{
$lt:NumberInt(2000)
}
}
]
}
)
db.comment.find({$and:[{state:{$eq:"1"}}]})
db.comment.find({$and:[{likenum:{$gte:NumberInt(700)}},{likenum:{$lt:NumberInt(2000)}}]})
db.comment.find({$or:[{articleid:{$eq:"9999"}},{likenum:{$gte:NumberInt(3000)}}]})
#书写技巧,mongo代表有3个{},第一个是条件,第二个是update的数据,第三个是设置multi查询多条数据
#and在第一个{}里面写,是个数组表示条件,条件有是一个对象,对象又是条件likenum:{$gte:NumberInt(888)}