当前位置: 首页 > news >正文

MongoDB常用命令

一. 基本操作

1.2 增

>db.test.insert({x:"1"}) //test 集合如果不存在,则创建
>for (var i = 1; i <= 25; i++) db.testData.insert( { x : i } )

1.2 查

>db.test.find()
>var c = db.testData.find()
>while ( c.hasNext() ) printjson( c.next() )

>db.test.find( { x : "7" } )
>db.test.find({x:"1"},{"_id":0,"x":1}) //不包含_id
>db.test.find().limit(3)
>db.users.find( { age: { $gt: 18 } }, { name: 1, address: 1 } ).limit(5).sort({age:1})
>db.test.find( { x: { $in: [ 1, 3,'hello' ] } } )
>db.inventory.find( { x: '1', $or: [ { qty: { $gt: 100 } }, { price: { $lt: 9.95 } } ]} )

start=new Date("2014-06-25 00:00:00")
>db.test.find({"insert_time":{"$lt":start}})

1.3 改

update(Document query,Document update,Document options)
query:查询条件
update:更新规则
$inc,$mul,$rename,$setOnInsert,$set/$unset,$min/$max,$currentDate
options:选项

key值类型说明
upsertboolean(false)如果不存在,是否创建。
multiboolean(false)是否对符合条件的doc全部更新


默认只更新一条。

• 将adu的年龄增加10
>db.test.update({"name":"adu"},{"$inc":{"age":10}})

• 将所有name为"adu"的年龄加10
>db.test.update({"name":"adu"},{"$inc":{"age":10}},{"multi":true})

• 将adu的年龄加10,并将sex设置为"male"
>db.test.update({"name":"adu"},{"$inc":{"age":10},"$set":{"sex":"male"}})

• 完全替换(没有使用$操作)
update({"name":"adu"},{"age":29,"name":"test"})
update({"name":"adu"},{"age":29,"name":"test"},{"upsert":true})

1.4 查找并修改

findAndModify(Document query,Document sort,boolean remove,Document update,boolean new,Document fields,boolean upsert)
修改并返回单个doc.默认返回修改前的doc,如果想要修改后的,设置new为true.
query:查询条件
sort:满足查询条件的结果进行排序,并只会对排在首位的doc进行修改
remove:是否删除,默认false。remove和update必须指定一个。
update:更新规则
new:是否返回修改后的doc,默认为false。对于remove操作,此选项会被略过。
fileds:返回doc的字段筛选。如:{"name":1,"age":1}
upsert:不存在的doc,是否直接插入,默认false.

• 
>db.people.findAndModify({
query: { name: "Tom", state: "active", rating: { $gt: 10 } },
sort: { rating: 1 },
update: { $inc: { score: 1 } }
})

>db.people.findAndModify({
query: { name: "Gus", state: "active", rating: 100 },
sort: { rating: 1 },
update: { $inc: { score: 1 } },
upsert: true
})

db.people.findAndModify({
query: { name: "Pascal", state: "active", rating: 25 },
sort: { rating: 1 },
update: { $inc: { score: 1 } },
upsert: true,
new: true
})

• 删除排名最低的那位活跃用户
>db.people.findAndModify(
{
query: { state: "active" },
sort: { rating: 1 },
remove: true
}
)

1.5 删

>db.test.remove({})
• 删除多条
>db.products.remove( { qty: { $gt: 20 } })

• 删除一条
>db.products.remove( { qty: { $gt: 20 } }, true )

二. 索引

2.1 查询

getIndexes()

2.2 创建

ensureIndex(Document keys, Document options)
keys:key为索引字段,value为1(升序)或-1(降序)
value:

key值类型说明
backgroundboolean(false)是否后台运行。如果后台,则mongodb在创建过程中会继续服务
uniqueboolean(false)是否唯一索引。




• 单列升序(非唯一)
>db.test.ensureIndex({"name":1})

• 联合索引(name升序,age降序)
>db.test.ensureIndex({"name":1,"age":-1})

• 联合唯一索引
>db.test.ensureIndex({"name":1,"age":-1},{"unique":true})

2.3 修改

mongodb不支持修改索引,如果想要修改就只能先删除再创建。

2.4 删除

• 删除索引
dropIndex(index)
index为string(索引名)或document。
>dropIndex("nameIdex")
>dropIndex({"name":1})

• 删除所有索引(除了_id)
>dropIndexes()

转载于:https://www.cnblogs.com/waterystone/p/5086202.html

相关文章:

  • [MFC] VS2013版本MFC工程移植到VC6.0上
  • 关于APP,原生和H5开发技术的争论
  • CentOS7+Tomcat 生产系统部署
  • 只有明确目标和方向才能直冲云霄
  • 如何解决MathType特殊字符在InDesign中的这些问题
  • 【深入浅出Node.js系列二】Node.jsNPM的安装与配置
  • ElasticSearch关闭重启命令
  • linux命令总结之---cat命令
  • 使用 wondershaper 在 Linux 中限制网络带宽使用
  • Python 中使用 MongoDB 存储爬虫数据
  • Jquery的同步和异步请求
  • 优先级队列(大顶堆)
  • orm2 中文文档 3.1 模型属性
  • 点击复选框添加或删除value值到input输入框中
  • Android Property Animation属性动画:rotation旋转(2)
  • [译]CSS 居中(Center)方法大合集
  • 11111111
  • C++入门教程(10):for 语句
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)...
  • github指令
  • Javascript基础之Array数组API
  • Linux CTF 逆向入门
  • Making An Indicator With Pure CSS
  • Protobuf3语言指南
  • vue.js框架原理浅析
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 服务器从安装到部署全过程(二)
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 开源SQL-on-Hadoop系统一览
  • 巧用 TypeScript (一)
  • 算法-图和图算法
  • 正则与JS中的正则
  • ​渐进式Web应用PWA的未来
  • #LLM入门|Prompt#3.3_存储_Memory
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (WSI分类)WSI分类文献小综述 2024
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (生成器)yield与(迭代器)generator
  • (四)鸿鹄云架构一服务注册中心
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (转) Android中ViewStub组件使用
  • (转)菜鸟学数据库(三)——存储过程
  • (最简单,详细,直接上手)uniapp/vue中英文多语言切换
  • *p=a是把a的值赋给p,p=a是把a的地址赋给p。
  • .gitignore文件_Git:.gitignore
  • .Net 8.0 新的变化
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Standard 的管理策略
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET 事件模型教程(二)