mongodb使用查询

概念解析

SQL术语mongo术语概念
databasedatabase数据库
tablecollection数据库表集合
rowdocument数据记录行
columnfield数据库字段
indexindex索引
primary keyprimary key主键,MongoDB自动将_id字段设置为主键

数据库连接

运行”use”命令,可以连接到一个指定的数据库。如果没有数据库则创建新的数据库
use logs
switched to db local

删除数据库

use logs连接数据logs库
db.dropDatabase() 删除数据库

创建集合

db.createCollection(name, options)
注意:在 MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

删除集合

db.collection.drop()

插入文档

MongoDB 使用 insert() 或 save() 方法向集合中插入文档

db.logs.insert({
    title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

更新文档

MongoDB 使用 update() 和 save() 方法来更新集合中的文档。

db.logs.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.logs.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}}) 仅仅修改一条
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true}) 修改多条

删除文档

db.colletion.remove(<query>,<justone>)
例子:
db.logs.remove({title:"MongoDB 教程"}

查询文档

db.collection.find().pretty()
MongoDB and 条件
db.col.find({key1:value1, key2:value2}).pretty()
or条件
db.col.find({$or:{key1:value1},{key2,valuye2}}).pretty()
模糊查询
db.col.find({“content”:/测/})
例子:

db.logs.find({"likes":{$gt:0},$or:[{"content":/测/},{title:"MongoDB 教程"}]}).pretty().skip(1).limit(2).sort({"likes":1})

条件操作符

MongoDB中条件操作符有:

  • (>) 大于 – $gt
  • (<) 小于 – $lt
  • (>=) 大于等于 – $gte
  • (<= ) 小于等于 – $lte

获取”cols”集合中”likes” 大于100
db.col.find({likes : {$gt : 100}})
获取”col”集合中 “likes” 大于100,小于 200 的数据
db.col.find({likes : {$lt :200, $gt : 100}})

MongoDB Limit与Skip方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
db.col.find().limit(number)
我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
db.col.find().limit(number).skip(number)

    原文作者:单只蝴蝶_569d
    原文地址: https://www.jianshu.com/p/3c9a2b64afc3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞