mongodb sql语句简易版本示例指南

非关系数据库适用场景:

优点:

      非关系型数据库是相对关系型数据库来讲的,又被称为 NoSQL 数据库,也可以叫作Not Only SQL 数据库 。

相比传统的 SQL 关系型数据库,其最大的特点就是适合存储非结构化或半结构化的数据,适合存储大规模数据。

以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销 。

弊端:

但是,其没有关系型数据库那种严格的数据模式 , 并不适合复杂的查询以及需要强事务管理的业务 。

// 创建数据库
// 如果数据库不存在,则创建数据库,否则切换到指定数据库
use MyNoSQlDB

/**
* 删除数据库
*	进入相应到数据库下,执行
* db.dropDatabase()
**/

// 显示所有集合
show collections

// 创建集合
// 创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )

// 删除集合
db.mycol.drop();


/**
* 
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:
db.COLLECTION_NAME.insert(document)
**/
db.firstcol.insert({"name":"first try"})

// 使用变量插入数据
document = ({title: 'IamTitle', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: 'xuhang666',
    url: 'https://www.baidu.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

db.xuhang.insert(document)

// 创建集合并插入数据
db.oldxu.insert({"name":"xuhang","age":99,"sex":"man"})

// 修改语句
/**
*
db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>
   }
)
*
**/
db.xuhang.update({"title":'IamTitle'},{$set:{"title":"newTitle"}},{"multi":true})

// 删除语句
/**
*
db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
*
**/
db.xuhang.remove({'title':"newTitle"}, {'justOne':true})

// 查询语句
/**
*
db.collection.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
db.xuhang.find().pretty()
**/
db.xuhang.find({'name':'tom'})

/**
*
MongoDB 与 RDBMS Where 语句比较
如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作	格式	范例	RDBMS中的类似语句
等于	{<key>:<value>}	db.col.find({"by":"菜鸟教程"}).pretty()	where by = '菜鸟教程'
小于	{<key>:{$lt:<value>}}	db.col.find({"likes":{$lt:50}}).pretty()	where likes < 50
小于或等于	{<key>:{$lte:<value>}}	db.col.find({"likes":{$lte:50}}).pretty()	where likes <= 50
大于	{<key>:{$gt:<value>}}	db.col.find({"likes":{$gt:50}}).pretty()	where likes > 50
大于或等于	{<key>:{$gte:<value>}}	db.col.find({"likes":{$gte:50}}).pretty()	where likes >= 50
不等于	{<key>:{$ne:<value>}}	db.col.find({"likes":{$ne:50}}).pretty()	where likes != 50
*
**/

/**
*AND 和 OR 联合使用
*/
db.xuhang.find({'age':{$gt:18}, $or:[{'sex':'man'}]}).pretty()

发布了55 篇原创文章 · 获赞 17 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/XuHang666/article/details/95067935