Mongodb的基本操作-数据库 集合 文档的增删改查

数据库操作:

//查看有哪些数据库

> show dbs

local  0.078GB

mydb   0.078GB

//use操作将切换到一个数据库 如果数据库存在将直接切换 如果不存在 那么会在切换之后,第一次执行新增修改操作的时候去创建这个数据库

> use newdb

switched to db newdb

//此时还没有创建

> show dbs

local  0.078GB

mydb   0.078GB

> db.persion.insert({age:10})

WriteResult({ "nInserted" : 1 })

//数据库已经创建

> show dbs

local  0.078GB

mydb   0.078GB

newdb  0.078GB

//删除数据库

> db.dropDatabase()

{ "dropped" : "newdb", "ok" : 1 }

> show dbs

local  0.078GB

mydb   0.078GB

集合操作:

> use mydb

switched to db mydb

//查看当前数据库的所有集合 因为是新数据库所以为空

> show tables

//插入一条数据 这里会自动插入一个集合person

> db.person.insert({name:‘zjf‘,age:30})

WriteResult({ "nInserted" : 1 })

//查看所有集合 已经有了person (system.indexes是系统产生的)

> show tables

person

system.indexes

//删除集合

> db.person.drop()

true

> show tables

system.indexes

文档插入

//使用db.collection.insert()语法

> db.person.insert({name:‘zjf‘,age:30})

WriteResult({ "nInserted" : 1 })

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

文档更新

update() 方法

update() 方法用于更新已存在的文档。语法格式如下:

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

  • query : update的查询条件,类似sql update查询内where后面的。
  • update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
  • upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
  • multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
  • writeConcern :可选,抛出异常的级别。

> db.person.insert({name:‘xhj‘,age:30})

WriteResult({ "nInserted" : 1 })

> db.person.insert({name:‘zzj‘,age:30})

WriteResult({ "nInserted" : 1 })

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b1"), "name" : "xhj", "age" : 30 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b2"), "name" : "zzj", "age" : 30 }

//更新年龄30的为31(尼玛又过了一年)

> db.person.update({age:30},{$set:{age:31}})

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

//因为默认的参数multi 为false 所以只更新了一条

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 31 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b1"), "name" : "xhj", "age" : 30 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b2"), "name" : "zzj", "age" : 30 }

//加上multi:true  这个就类似于关系型数据库的update

> db.person.update({age:30},{$set:{age:31}},{multi:true})

WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 31 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b1"), "name" : "xhj", "age" : 31 }

{ "_id" : ObjectId("592fff812108e8e79ea902b2"), "name" : "zzj", "age" : 31 }

//根据单个记录的save来更新 这个时候要有_id作为主键 对单条数据进行更新的时候加了单独的save方法 而不是使用update({ "_id" :ObjectId("592ffd872108e8e79ea902b0")})这种方式。是把单条数据作为一个对象来看待了。

> db.person.save({ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 })

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b1"), "name" : "xhj", "age" : 31 }

{ "_id" : ObjectId("592fff812108e8e79ea902b2"), "name" : "zzj", "age" : 31 }

文档删除

remove() 方法的基本语法格式如下所示:

db.collection.remove(

<query>,

<justOne>

)

如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove(

<query>,

{

justOne: <boolean>,

writeConcern: <document>

}

)

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。
  • writeConcern :(可选)抛出异常的级别。

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

{ "_id" : ObjectId("592ffe972108e8e79ea902b1"), "name" : "xhj", "age" : 31 }

{ "_id" : ObjectId("592fff812108e8e79ea902b2"), "name" : "zzj", "age" : 31 }

> db.person.remove({age:31})

WriteResult({ "nRemoved" : 2 })

> db.person.find()

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

文档查询

MongoDB 查询数据的语法格式如下:

db.collection.find(query, projection)

  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

>db.col.find().pretty()

> db.person.find({name:‘zjf‘})

{ "_id" : ObjectId("592ffd872108e8e79ea902b0"), "name" : "zjf", "age" : 30 }

时间: 2024-10-04 18:15:30

Mongodb的基本操作-数据库 集合 文档的增删改查的相关文章

mongodb的学习笔记一(集合和文档的增删改查)

1数据库的增删改查 一.增加一个数据库: use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的) 二.删除一个数据库 1首先用use 切换到你需要删除的数据库 use test 2然后执行db.dropDatabase()命令 db.dropDatabase() 三.修改一个数据库的名字 db.copyDatabase(fromdb, todb, fromhost) fromdb:源数据库, todb:目标数据

分布式搜索elasticsearch 索引文档的增删改查 入门

1.RESTful接口使用方法 为了方便直观我们使用Head插件提供的接口进行演示,实际上内部调用的RESTful接口. RESTful接口URL的格式: http://localhost:9200/<index>/<type>/[<id>] 其中index.type是必须提供的. id是可选的,不提供es会自动生成. index.type将信息进行分层,利于管理. index可以理解为数据库:type理解为数据表:id相当于数据库表中记录的主键,是唯一的. 2.索引文

mongodb对数组元素及内嵌文档进行增删改查操作(转)

from:https://my.oschina.net/132722/blog/168274 比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: <!-- lang: js --> { "_id" : "195861", "tags" : [ { "tagId" : NumberLong(766), "optDate" : ISODate(&qu

MongoDB对数组元素及内嵌文档进行增删改查操作

比如我有一个user类,他包含一个标签属性,这个标签是一个数组,数组里面的元素是内嵌文档,格式如下: {    "_id" : "195861",    "tags" : [            {                    "tagId" : NumberLong(766),                    "optDate" : ISODate("2013-08-12T15

文档的增删改查

增加文档: 方法1: db.collection.insert({}) 插入单个文档 db.collection.insertOne({}) 插入当个文档 db.collection.insert([{},{},{}]) 插入多个文档,参数用中括号 db.collection.insertMany([{},{}]) 也是插入多个文档 e.g. db.class0.insert({'name':"Lucy","age":18}) e.q. db.class0.inse

MongoDB 文档字段增删改

MongoDB 基于CRUD(create,read,update,delete)方式实现了对集合上的文档进行增删改查.对于集合上字段的增删改,可以使用set或者unset修改器来实现.也可以使用文档替换的方式来实现.本文主要描述集合上字段的增删改,以及基于选项upsert的更新. a.语法描述 db.collection.update( <query>,                  //查询或过滤条件 <update>,                 //修改器(被修改键

MongoDB文档的增删改操作

上一篇文章中介绍了MongoDB的一些基本知识,同时看到了怎么启动一个MongoDB服务,并且通过MongoDB自带的shell工具连接到了服务器. 这一次,就通过MongoDB shell介绍一下对文档的增删改操作. 增加新文档 接着上一篇文章,打开一个MongoDB shell. 通过“show dbs”可以看到所有的数据库.然后我们通过“use blog”切换到blog数据库来开始下面的演示. 使用“db”命令显示当前正在使用的数据库. 1 C:\mongodb\bin>mongo.exe

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "