Mongodb日常操作命令

查看数据库状态:db.stats()
查看集合状态:db.collection_name.stats()
查看索引使用情况:db.collection_name.getIndexes()
重新生成集合的索引:db.collection_name.reIndex()
查看查询执行计划:db.collection_name.find({ ... }).explain()
查看库大小:db.stats();
查看集合大小:db.js_user.stats(); db.js_wx_setting_menu.storageSize(); db.js_html_alias.totalIndexSize();

集合操作:
创建集合:db.createCollection("collection_name")
查看所有集合:show collections
删除集合:db.collection_name.drop()

文档操作:
插入文档:db.collection_name.insertOne({field1: value1, field2: value2})
批量插入文档:db.collection_name.insertMany([{field1: value1, field2: value2}, {field1: value3, field2: value4}])
查询文档:db.collection_name.find({field1: value1})

查询操作:
简单查询:db.collection_name.find()
大于某个时间段:db.promotion_report.count({ dayTime: { $gt: '2022-06-24' } })
正则查询:db.inventory.find( { tags: "/^red/" } )
or查询:db.collection_name.find({$or:[{field1: value1, field2: value2}]})
and查询:db.collection_name.find({$and:[{field1: value1, field2: value2}]})
条件查询:db.collection_name.find({field1: value1, field2: value2})
查询指定字段:db.collection_name.find({field1: 1}, {"_id":0, "compayid": 1})  /// 不返回_id字段,返回compayid
查询数组:db.inventory.find( { tags: ["red", "blank"] } )
在数组中查询元素:db.inventory.find( { tags: "red" } )
查询同时包含元素和 的数组:db.inventory.find( { tags: { $all: ["red", "blank"] } } )
查询数组包含 3 个元素的文档:db.inventory.find( { "tags": { $size: 3 } } )
查询排序按字段:db.collection_name.find().sort({createTime: 1}).limit(1);
查询排序按_id:db.el_frequent_visitor.find().sort({ '_id': -1 }).limit(1);
查询排序按_id并分页:db.el_frequent_visitor.find().sort({ '_id': -1 }).skip(800).limit(10);
查询限制:db.collection_name.find().limit(10)
查询跳过:db.collection_name.find().skip(5)
查询数据为null:db.promotion_keyword.find({ "createTime": null }).limit(10);
查询数据时间为字符:db.promotion_keyword.find({ "createTime": { "$lt": "2022-06-24 00:00:00" } }).
查询数据时间为日期:db.promotion_keyword.count({ "createTime": { "$gt": ISODate("2024-06-24T00:33:50Z") } })
不为空:db.js_visitor.find({ group_id: { $ne: null } })
为空:db.js_visitor.find({ group_id:  null })

findOneAnd操作:
db.collection.findAndModify()
db.collection.findOneAndDelete()
db.collection.findOneAndReplace()
db.collection.findOneAndUpdate()           
   
更新操作:
更新文档:db.collection_name.updateOne({field1: value1}, {$set: {field2: new_value}})
更新多个文档:db.collection_name.updateMany({field1: value1}, {$set: {field2: new_value}})
替换与指定筛选器匹配的单个文档:db.collection.replaceOne()        

删除文档:
删除文档:db.collection_name.deleteOne({field1: value1});
删除多个文档:db.collection_name.deleteMany({field1: value1});
删除文档所有数据:db.collection.remove({});

索引操作:
创建索引:db.collection_name.createIndex({field1: 1, field2: -1}, {background: true})
查看索引:db.collection_name.getIndexes()
删除索引:db.collection_name.dropIndex({field1: 1, field2: -1}, {background: true})

 

 

 

posted @   郭慕荣  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2022-01-06 spring事务注解@Transactional注解失效场景
2021-01-06 大数据量数据分页查询优化方案
点击右上角即可分享
微信分享提示