MongoDB的增删改查

1.启动 - 配置环境变量 MongoDB/3.4/bin

通过命令 mongod 来启动 MongoDB

默认端口 27017

redis:6379

Mysql:3306

   可以指定数据库存放目录,但在登录时必须指定路径:

  mongod --dbpath="指定数据库存放路径"

2.应用连接MongoDB数据库

通过 mongo 指令 进行本地数据库连接

3.MongoDB数据:

mysql - 数据库服务 - 数据库 - 数据表 - 字段 - 数据row

mongodb - 数据库服务 - 数据库 - 数据表 - 字段 - 数据

show databases 查看当前数据库服务 中包含的数据库 磁盘中的数据库

use db_name 切换当前使用的数据库 ,如果数据库不存在,会在内存中创建一个新的数据库

db 显示当前使用的数据库 ,指数据库名

show tables 查看当前数据库中的数据表 - 预览 - 磁盘中的数据表

4.创建数据表

db.数据表名 在内存中创建数据库表

5.写入数据才能将内存中的数据库和数据表永久写入到磁盘中

orm.create({}) == orm.insert({})

增加数据

db.users.insert({"name":1,"age":2})

数据库.数据表.指令({数据})

查询数据

db.users.find()

数据库.数据表.指令()

6.MongoDB数据存储结构

  大字典,json结构

7.MongoDB数据类型:

  ObjectId 数据类型 自增id - 不限定在数据库和数据表中

  String  字符串类型

   Int 不直接默认Int数字,Int32 Int64 如果不直接指定Int 存储的是Double

   Double 双精度浮点型 默认数字存储的数据类型 不存在 float 类型

   Array :列表数据类型数据 list = []

   Object:字典数据类型 dict = {}

  Date: ISODate() 时间日期数据类型

   Null: None

   Boolean: 布尔类型,true false

  Timestamp : 通常情况下 Double 存储

8.增删改查的详细操作 - # 使用了不存在的对象 即 创建该对象  use db db.table

1.增:

增加一条:db.th.insert({name:1}) //官方不推荐写法 3.2 加入新的insert写入方式

增加多条:db.th.insert([{name:1},{name:2},{name:3}]) //官方不推荐写法 3.2 加入新的insert写入方式

官方推荐的写法:

增加一条:db.th.insertOne({}) // 返回 _id

增加多条:db.th.insertMany([{},{},{}]) // 返回 _ids

2.查:

查询所有符合条件的数据 : db.th.find({})

查询符合条件的第一条数据 :db.th.findOne({})

带简单条件的查询:

db.th.findOne({name:2}) 查询name字段 == 2 的数据

db.stu.find({name:"金角大王8",age:99}) 并列条件 name与age 同时满足的

3.改:简单修改

更新符合条件的数据,默认为第一条符合条件的数据:db.stu.update({}, {$set:{}})

官方推荐写法:

更新第一条符合条件的数据:db.stu.updateOne({age:99}, {$set:{"name":"JW8"}})

修改器 : $set 强制将某字段的value修改

更新所有符合条件的数据 : db.stu.updateMany({age:99}, {$set:{"name":"JW8"}})

4.删:

删除符合条件的所有数据:db.th.remove({}) // 官方不推荐

官方推荐写法:

删除第一条符合条件的数据 : db.th.deleteOne({name:1})

删除符合条件的所有数据:db.th.deleteMany({name:1})

删除所有数据 :db.th.deleteMany({})

9.MongoDB中的数据表,数据行,数据列

Mysql       MongoDB

数据表      table       Collections

数据行      row         Documents

数据列      字段        Field

10.高级版 查询

并列查询 :db.Collection.find({Field:1,Field2:2})

或查询   :db.Collection.find({$or:[{Field:1},{Field2:3}]})

   db.stu.find({$or:[{age:99},{ages:666}]}) 在不同字段查询或条件时使用$or

db.Collection.find({Field:{$in:[1,2,3,4,5]}})

db.stu.find({age:{$in:[9,99,999,9999,9999]}}) 在相同字段情况下查询或条件时使用 $in

select * from table where name=1 or age=2 or gender=3

Array 查询 db.stu.find({"hobby":"DSB"})

数学比较符 $lt $lte $gt $gte $eq $ne

$all : 子集查询

db.stu.find({l:{$all:[8,6,4,2]}})

Object 查询 :

db.stu.find({"class.name":"python"})

11.高级版 修改:

$set : 强制修改字段值

$inc : 引用增加 db.stu.updateMany({}, {$inc: {"age":10}})

$unset: 强制删除某个Field db.stu.updateMany({}, {$unset: {"age":1}})

针对Array:

增加操作:

db.stu.updateOne({name:"金角大王8"},{$push:{"hobby":"娟儿"}})

$push == append

db.stu.updateOne({name:"金角大王8"},{$pushAll:{"hobby":[1,2,3]}})

$pushAll == extend

删除操作:

db.stu.updateOne({name:"金角大王8"},{$pull:{"hobby":"DSB"}})

$pull == remove

$pullAll == 删除每一个元素

db.stu.updateOne({name:"金角大王8"},{$pullAll:{"hobby":[2,3]}})

$pop() 是删除列表中的第一个 (-1) 或者最后一个 (1)

db.stu.updateOne({name:"金角大王8"},{$pop:{"hobby":1}})删除最后一个

db.stu.updateOne({name:"金角大王8"},{$pop:{"hobby":-1}})删除第一个元素

更新元素 :

db.stu.updateOne({name:"金角大王8","hobby":2},{$set:{"hobby.$":"娟儿"}})

db.stu.updateOne({name:"JW8","class.name":"python"},{$inc:{"class.$.score":10}})

针对Object:

db.stu.updateOne({name:"金角大王8"},{$unset:{"class.classtype":"bcyy"}})

db.stu.updateOne({name:"金角大王8"},{$set:{"class.classtype":"bcyy"}})

12. $ 关键字

用来存储符合条件的元素下标索引

l = [1,2,3,1,2,2,2] 哪个元素 == 2 它的下标是多少 $就等于这个下标的数字

l[1] = "娟儿"

l[$] = "娟儿"

13.limit skip sort

limit 选取数据量

skip 跳过数据量

sort 根据字段进行排序

db.stu.find().sort({ name:1 }).skip(6).limit(3)

原文地址:https://www.cnblogs.com/wangtaobiu/p/10602705.html

时间: 2024-10-01 02:48:51

MongoDB的增删改查的相关文章

Scala对MongoDB的增删改查操作

=========================================== 原文链接: Scala对MongoDB的增删改查操作 转载请注明出处! =========================================== 依赖环境:jdk1.8.Scala 2.12.idea mongodb Driver:3.1.1.注意,mongo for scala的驱动涉及多个jar(如下图),依赖于mongo-java-driver.jar 这里使用的sbt管理依赖,直接在bu

MongoDB(三)——增删改查

MongoDB作为非关系型数据库,还是传统数据库的增删改查有很大的区别的,这里只是将知识点进行了一下提纲挈领,实际用的时候,我们百度一下详细用法即可.先看大的几个方面: 一,对于里边的插入和删除不再过多赘述,相对来说知识点比较少.先来看一下更新,常用操作还是非常有用的,需要我们根据实际情况灵活运用,这里只是提出了知识点,需要百度出例子来学习使用: 2,查询也是一样,看一下知识点的汇总,其实用几个,还是有规律的,比较容易记录的: 3,看一下固定集合Capped Collection:顾名思义是有着

C# 对MongoDB 进行增删改查的简单操作

C# 对MongoDB 进行增删改查的简单操作 下面演示下C#操作MongoDB驱动的简单的增删改查代码 运用到的MongoDB支持的C#驱动,当前版本为1.6.0 下载地址:https://github.com/mongodb/mongo-csharp-driver/downloads 1,连接数据库 /// <summary> /// 数据库连接 /// </summary> private const string conn = "mongodb://127.0.0

Java连接MongoDB进行增删改查

1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean; import java.io.Serializable; import java.util.Date; /** * @since 对应于mongodb中的数据库test中的表com * @author think * */ public class Company implements Seri

MongoDB的增删改查 转

MongoDB的增删改查 (黎明你好原创作品,转载请注明) MongoDB中数据的基本单元叫做文档,采用json的键-值的方式.多个键及其关联的值有序的存放在一起变是文档.类似于编程语言中的键值关系.MongoDB文档都是BSON文档,他是一个JSON的二进制形式. MongoDB的文档 MongoDB中文档被存储在集合中.集合是一组有关系索引的文档.集合类似于关系数据库中的表. MongoDB的集合 2.1 方法参考 查询游标方法 名称 说明 cursor.count() 返回游标中的文档的数

MongoDB之增删改查(一)

本文主要介绍MongoDB数据库增删改查操作. 增 mongoDB和其他关系型数据库一样,通过insert来增加数据到集合中去. db.collectionName.insert(内容) 显示数据库中所有集合: show collections 删 MongoDB中通过remove来删除集合中符合一定条件的文档. remove接受一个参数,作为寻找要删除文档的条件: 当然了,也可以直接删除一整个集合,通过drop方法: db.person.drop() 删除集合然后重建索引比删除集合中所有的文档

Mongodb c#增删改查

写在前面 最近项目需要,就研究了下mongodb,也是为了快速上手,就自己弄了一个简单的例子,这里记录一下. Mongodb 传统的关系数据库一般由数据库(database).表(table).记录(record)三个层次概念组成,MongoDB是由数据库(database).集合(collection).文档对象(document)三个层次组成.MongoDB对于关系型数据库里的表,但是集合中没有列.行和关系概念,这体现了模式自由的特点. 那么在c#如何使用呢?下面看个例子,你会发现上手非常简

Mongodb之增删改查

一 Mongodb 首先下载好这个和上一篇文章下载的Mongodb 关于Mongodb的常识 1 它的默认端口 是27017 2 3 show dbs 查看所有存在磁盘上的数据库 4 show tables 查看当前数据库存在磁盘上的数据表 5 6 use 数据库 创建数据库或切换数据库 7 8 ######使用了不能存在的对象即创建该对象###### 9 10 数据库.表名 创建表 一些基本命令 二 Mongodb数据的增删改查 #insert db.user.insert({"id"

vue+express+mongodb 实现 增删改查

一.创建一个vue项目 用脚手架vue-cli搭建一个项目,数据请求用axios方式,写几个按钮用来调接口(vue这块不做多解释,不懂的可以先去官网学习vue-cli:https://cli.vuejs.org/zh/guide/cli-service.html   axios:http://www.axios-js.com/) 注意点:在用axios调用接口的时候会产生跨域,所以有配置下:在vue项目根目录下打开config文件夹下的index.js文件中proxyTable中加入配置内容 p