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

1数据库的增删改查

一、增加一个数据库:

use blog-----切换到指定的数据库,如果数据库不存在,则自动创建该数据库(新建的数据库,如果没有存储对应的集合,是不会显示出来的)

二、删除一个数据库

1首先用use 切换到你需要删除的数据库
use  test
2然后执行db.dropDatabase()命令
db.dropDatabase()

三、修改一个数据库的名字

db.copyDatabase(fromdb, todb, fromhost)
fromdb:源数据库,
todb:目标数据库
fromhost:原地址

实例:修改blog的数据库名为blog123
use blog
db.copyDatabase("blog","blog3");
db.dropDatabase()

四、查询所有数据库

show dbs

2文档的增删改查(集合---表,文档--行,字段--列)

一、增加文档

db.table_name.insert(document):插入文档
db.table_name.save(document):插入文档,如果带有id,则更新
注意,document都是json格式
实例:插入一个user实例
db.user.insert({"name":"zhangsan","password":"123456"})
或
db.user.save({"name":"zhangsan","password":"123456"})

二、删除文档

db.table_name.remove(query,juseone)
注意:query与justone都是JSON格式
query:删除的查询条件
justone:是否只删除一条文档
示例:只删除一个name等于test的文档
db.user.remove({"name":"test"},{justone:1})

三、更新文档

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 :可选,抛出异常的级别。

示例:更新name为zhangsan的密码为111111,如果不存在就插入,如果存在多条,则只更新一条
use blog
db.user.update({"name":"zhangsan"},{$set:{"password":"111111"},true,false})

update语句的更新操作符说明:

1$set:相当于等号“=”,也可以为文档新增加一个字段,例如name不存在,则添加一个name字段
例如:{$set:{“name“:“"123"}}

2$inc:相当于“加等”“+=”,字段必须存在,
 例如:{$inc:{"ago":1}}

3$unset:去除文档的某个字段
例如:{$unset:{"ago":0}}
4$push:为文档的某个字段添加一个数组值,如果字段不存在,则创建字段
原记录:
{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ]}
执行命令
db.user.update({"name" : "zhangsan"},{$push:{"group":"sale"}})
执行后
{ "_id" : ObjectId("5003be465af21ff428dafbe7"), "name" : "zhangsan", "password":"123456","group" : [ "manager" ,"sale"]}
5$ne
主要给数组类型键值添加一个元素时,避免在数组中产生重复数据,$ne在有些情况是不通行的。
 db.user.update({"group" : {$ne:"sale"}},{$push:{"group":"sale"}})
6.数组修改器--$pop、$pull
$pop从数组的头或者尾删除数组中的元素
--从数组的尾部删除 1
> db.c.update({"name" : "zhangsan"},{$pop:{"group":1}})
$pull从数组中删除满足条件的元素,示例如下:
> db.user.update({"name" : "zhangsan"},{$pull:{"group":"sale"}})

7.数组的定位修改器
-------------------------------------------------------------------
在需要对数组中的值进行操作的时候,可通过位置或者定位操作符("$").数组是0开始的,可以直接将下标作为键来选择元素。
示例如下:
{"uid":"001",comments:[{"name":"t1","size":10},{"name":"t2","size":12}]}

> db.c.find({"uid":"001"})
{ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
"name" : "t1", "size" : 10 }, { "name" : "t2", "size" : 12 } ] }
> db.c.update({"uid":"001"},{$inc:{"comments.0.size":1}})
> db.c.find({"uid":"001"})
{ "_id" : ObjectId("5003da405af21ff428dafbe8"), "uid" : "001", "comments" : [ {
"name" : "t1", "size" : 11 }, { "name" : "t2", "size" : 12 } ] }

save()语句:

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
document:JSON格式

示例:更新name为zhangsan的密码为123456
use blog
db.user.save({ "_id" : ObjectId("574d9667ec9f7148b53f27d9"), "name":"zhangsan","password" : "123456" })

四、查询文档

db.table_name.find(query)
query:json格式,可以使用操作符
示例:查询ago大于20并且(name等于张三或password等于123456)的记录
db.col.find({"ago": {$gt:20}, $or: [{"name": "zhangsan"},{"password": "123456"}]}).pretty()
db.col.find().pretty():以合理的格式显示查询的内容
时间: 2024-10-25 03:48:05

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

hibernate学习笔记之三(单条记录的增删改查)

(hibernate学习笔记系列来自于 "疯狂Java" Hibernate视频学习) 保存用户 session.save(person); session.persist(person); 查询用户 load(Class theClass,Serializable id) get(Class theClass,Serializable id) 修改用户 session.update(person) session.merger(person); 保存或修改用户 session.sav

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}) Wr

C#学习笔记(6)——大项目增删改查

说明(2017-5-28 11:35:39): 1. 需要注意的地方很多 2. 首先是连接字符串str要直接写在类里面,不然每个按钮里面都要写一遍. 3. 查询用到sqlDataReader等三个方法,其他增删改只用到sqlCommond和sqlConnection. 4. sqlConnection记得要open! 5. 其他的记不起来了,总之要经常练习! 运行结果: 代码: 1 using System; 2 using System.Collections.Generic; 3 using

【知了堂学习笔记】mysql之数据库的增删改查

一.DDL 1.创建数据库 create database 数据库名 *数据库名不能中文, 不能数字正常英文 , 关键字会自动变大写 2.删除数据库 drop database 数据库名 3.使用数据库 use 数据库名 *如果有很多数据库,要具体使用时,可以手动选择,可以通过语法形式声明使用哪一个 二.操作表 1.创建表 create table 表名(列名1 列1的数据类型 列的约束 ,列名2 列2的数据类型 列的约束) eg:创建一张学生表 CREATE TABLE t_student(

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

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

MongoDB学习笔记~为IMongoRepository接口添加了增删改方法,针对官方驱动

上一讲说了MongoDB官方驱动的查询功能,这回说一下官方驱动的增删改功能,驱动在升级为2.0后,相应的insert,update和delete都只有了异步版本(或者叫并行版本),这当然也是跟着.net走的正方向,大事所趋,但有时,我们的前台已经使用同步方式实现了,为了不改变前台代码,所以,后台的异步版本可能不是我们所需要的,所以,我们需要将它进行一些改造,把异步改为同步,即主线程等待异步方法执行结束后,再进行下面的代码,这样,可以保证方法的正确性. 由于insert,update,delete

MongoDB在windows上安装以及java中的增删改查

1.windows下的安装创建 http://tech.it168.com/a2011/0603/1200/000001200064_2.shtml http://blog.csdn.net/xiaoxing598/article/details/54233044 2.Java操作mongodb http://www.cnblogs.com/zhwl/p/3491213.html http://blog.csdn.net/xiaoyw71/article/details/49633831 htt

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