Mongodb语法

//查看当前数据库
db;

//切换or创建数据库
use runoob;

//新增集合
//在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。
db.createCollection("runoob")


//查看数据库下的集合
show tables
show collections


//-----------------------------查询
//查询name集合全部数据
db.getCollection('name').find().pretty()

//指定集合等于条件查询-name为集合名
db.getCollection('name').find({"name":"菜鸟教程","name2":"MongoDB"}).pretty()

//and条件查询-runoob为集合名
db.runoob.find({$and:[{"name2":"菜鸟教程"},{"name3":"菜鸟教程3"}]}).pretty()

//单一条件查询-name为集合名
db.name.find({"_id":"630f0b8d71ea4a77823ee2e8"}).pretty()

 

 


//------------------------------新增
//增加数据-name为集合名
db.name.insert({"name2":"菜鸟教程"})


//--------------------------删除

//删除数据库
db.dropDatabase()

//删除集合-name为集合名
db.name.drop()


//-------------------------更新
更新name=菜鸟教程 的那条信息  ,name2字段值为MongoDB
以下语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true
db.name.update({"name":"菜鸟教程"},{$set:{'name2':'MongoDB'}},{multi:true})

 

根据id更新

db.getCollection("name").update( { _id: ObjectId("630f1f1c71ea4a77823ee2ec") }, {
    name2: "菜鸟教程5",
        name3:"123"
} );

 

 

参考: https://www.runoob.com/mongodb/mongodb-tutorial.html

 

 

 

navicat可以复制插入和更新语句

 

 

 1.#where条件查询使用
 select * from User where name='zhangsan'
 # mongo中查询
 >db.User.find({name:'zhangsan'})
 2.# fields取相应的字段
 select name,age from where age=25
 #mongo中查询
 >db.User.find({age:25},{'name':1,'age':1})
 #查询结果
 { "_id" : ObjectId("61b45a1218b24d5eb2f22a58"), "name" : "zhangsan", "age" : 25 }
 3.# sort 在mongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用1-1来指定排序的方式,其中1为升序,-1为降序
 #select * from User order by age
 >db.User.find().sort({age:1})
 4.# suce 在mongoDB中使用limit()方法来读取指定数量的数据,skip()方法来跳过指定数量的数据
 #select * from User skip 2 limit 3
 >db.User.find().skip(0).limit(3)
 5.# in 在这个范围中的数据
 #select * from User where age in (21,26,32)
 >db.User.find({age:{$in:[21,26,32]}})
 6.# count 查询数量
 #select count(*) from User where age>20
 >db.User.find({age:{$gt:20}}).count()
 7.# or 条件关联查询
 #select * from User where age=24 or age=26
 >db.User.find({$or:[{age:24},{age:26}]})

 

 

聚合函数

db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : 1}}}])
by_user 为需要分组的字段
num_tutorial : {$sum : 1}   count后另外起的字段名

等于
 select by_user, count(*) from mycol group by by_user
 
 
 
 筛选后再分组
 db.BugMeassge.aggregate([
{ "$match" : { "createdtime" : { "$gte" : 1662134408000, "$lte" : 1662260529000}}}, 
{ "$group" : { "_id" : "$status", "status" : { "$first" : "$status"}, 
"total" : { "$sum" : 1}}}])

 

 

更多的参考:

https://www.runoob.com/mongodb/mongodb-aggregate.html

 

设置索引(对name字段设置唯一索引)

db.markOnlineMan.createIndex({ "name": 1 }, { unique: true })

 

posted @   凯宾斯基  阅读(53)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2020-08-30 执行一个单独的.vue文件的方法
2020-08-30 BeautifulReport报告实现(还没试 有空试试)
2019-08-30 python 一个文件里面多个函数同时执行( 多线程 的方法,并发)--多线程 threading
2019-08-30 Selenium下Chrome配置 (含启动无痕界面--无界面浏览器)
2017-08-30 python-selenium 并发执行用例的问题
点击右上角即可分享
微信分享提示