首页 技术 正文
技术 2022年11月17日
0 收藏 387 点赞 3,476 浏览 2344 个字

突然想去看下MongoDB的东西,于是有了这篇文章。其实很早以前就看过一些关于NoSql的文章,还记得当时里面有介绍MongoDB的,多瞅了2眼,并且在Window下安装了MongoDB的驱动,小玩了会。今天重新翻出来,没成想在命令行下竟然没有能成功连接到MongoDB。一顿Baidu后发现了问题,原来是上次非正常退出MongoDB导致的问题,照猫画虎,解决了问题:贴这里以备不时之需,

1、删除%MONGO_HOME%/db下的.lock文件 2、输入命令 mongod –repair 3、重启mongoDB 这里只对MongoDB的使用做一些简单记录,环境配置什么的,请参考:MongoDB配置安装

客户端连接mongodb

在client的shell里,执行mongo.exe

如何正常退出mongodb

在client的shell里,use admin,执行db.shutdownServer()即可!

创建表

db.createCollection(‘zylTest’)

插入记录

  单条记录:

  db.zylTest.insert({“name”:”zhoujy”})

  多条记录

  db.zylTest.insert([{“a”:1,”b”:2},{“a”:2,”b”:3},{“a”:3,”b”:4}])

插入记录将按照Json结构来定义,若多条记录的格式不相同,mongodb会自行做出处理

MongoDB_1

删除记录

单条删除:db.zylTest.remove({“name”:”zhoujy”})

全部删除:db.zylTest.remove()

更新记录:

  $【inc】用于int类型的列加减操作

  这个部分比较麻烦:我们先来看【$inc】这个操作,【$inc】 用于int类型的key(列)加减操作,要是指定的要更新的key不存在,则会新增该key(列):以下面的操作为例:

MongoDB_1

如上图所示在之前的结构中并不包含【pv】这一列,若第一次执行下面的操作,数据库结构将发生响应的变化

db.zylTest.update({“name”:”zhoujy”},{“$inc”:{“pv”:1}})

MongoDB_1

多次执行,列Pv的值将按输入数值相加

MongoDB_1

相关命令行:

  只更新第一条出现的记录,+1

  db. zylTest.update({“name”:”a”},{“$inc”:{“pv”:1}})

  更新所有符合条件的记录,+1;(第4个参数是true)

  db. zylTest.update({“name”:”a”},{“$inc”:{“pv”:1}},false,true)

  要是更新条件找不到记录,默认是不执行;要是第3个参数是true,则会新增一条记录,包含完整的数据结构

  db. zylTest.update({“name”:”a”},{“$inc”:{“pv”:1}},false,true)

  总之上面的查询相当于SQL中的

  update zylTest set pv=pv+1 where name =’ zhoujy’

$【set】用于更新指定列

$set 用于更新指定key(列),要是指定的要更新的key不存在,则会新增该key(列):

相关命令行:

  只更新第一条出现的记录

  db. zylTest.update({“a”:1},{“$set”:{“b”:”A”}})

  更新所有符合条件的记录(第4个参数是true),若没有符合条件的记录则不执行任何操作,当第三个参数为true的时候,若找不到符合条件的记录则会新增一条记录.

  db. zylTest.update({“a “:-1},{“$set”:{” b “:”A”}},false,true)

  update zylTest set b=’A’ where a =’1

$【unset】 用于删除指定的列

  删除第一条b为2的记录的列A

  db.zylTest.update({“b”:2},{“$unset”:{“a”:1}})

  删除复合条件的记录的列A,第3个参数没有意义

  db.zylTest.update({“b”:”2″},{“$unset”:{“a”:1}},true,true)

  删除所有记录的列A

  db.zylTest.update({},{“$unset”:{“a”:1}},false,true)

 

其余更新操作暂时省略

查询

  返回所有记录

  db.zylTest.find()

  条件查询

  db.zylTest.find({“a”:1})

  db.zylTest.find({“a”:1,”b”:2})

  In or not in

  db.zylTest.find({“a”:{“$in”:[1,3,5,8]}})

  db.zylTest.find({“a”:{“$nin”:[1,3,5,8]}})

  Or查询

  db.zylTest.find({“$or”:[{“a”:1},{“b”:”2″}]})

  db.zylTest.find({“$or”:[{“a”:{“$in”:[1,2,3]}},{“b”:”3″}]})

  不等条件查询:

  $lt(<);$lte(<=);$gt(>);$gte(>=);$ne(<>)

  db.zylTest.find({“a”:{“$gt”:1,”$lte”:5}})

  db.zylTest.find({“a”:{“$gt”:1,”$lte”:5,”$ne”:3}})

  限制查询:

  db.zylTest.find({“a”:{“$in”:[1,3,5,8]}}).limit(1)

  排序:

  db.zylTest.find({“b”:2}).sort({“a”:-1})

  匹配查询:

  这块没有看明白,后面再补充吧

  

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905