mongodb 怎么执行sql

mongodb 怎么执行sql,第1张

交互式 mongo shell

mongo 127001:27017

use test

dbusersfindOne()

mongo --eval 运行一段脚本

mongo 127001:27017/test --eval "printjson(dbusersfindOne())"

在OS命令行下,运行一个js文件

mongo 127001:27017/test userfindonejs

userfindonejs 的内容:

printjson(dbusersfindOne());

在mongo shell 交互模式下,运行一个js文件

mongo test

load("/root/mongojs/userfindonejs")

load() 参数中的文件路径,既可以是相对路径,也可以是绝对路径。

在mongo shell下查看当前工作路径的方法: pwd( )

当前工作路径就是我们启动mongo shell时,当前用户所处的路径。

例如:

[root@cgl-centos-dev mongojs]# pwd

/root/mongojs

[root@cgl-centos-dev mongojs]# mongo

MongoDB shell version: 2612

connecting to: test

> pwd()

/root/mongojs

>

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

dbcollectionfind(query, projection)

query :可选,使用查询 *** 作符指定查询条件

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

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

pretty() 方法以格式化的方式来显示所有文档

以下实例我们查询了集合 col 中的数据:

> dbcolfind()pretty(){

"_id" : ObjectId("56063f17ade2f21f36b03133"),

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "菜鸟教程",

"url" : ">

除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。

Laravel框架中的DB类让我们可以方便的进行数据库 *** 作,比如常见的query查询:

DB::query('SELECT FROM users');

Larvel还提供了类似CI框架中Active Record的Fluent Query Builder : DB::table('user')->where('id','=','1')->get();

虽然从 *** 作上和普通查询相差不大,但是需要注意到是Laravel的查询结果和原生查询不同。

简单建立一个contents表测试下,表里有content字段,我们查询一下:

$content = DB::table('contents')->where('id','=','1')->get();

最后打印一下$content变量看看有什么不同:

array(1)

{

[0]=> object(stdClass)#31 (1) {

["content"]=> string(24) "这是一个测试~~" }

}

从上面可以知道查询的结果是一个包含对象的数组,因此我们要取得content值就必须先迭代:

foreach($contents as $content)

{ echo $content->content;

}

总体来说Laravel的数据库 *** 作很容易上手。

MySQL是关系型数据库。

优势:

在不同的引擎上有不同 的存储方式。

查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。

开源数据库的份额在不断增加,mysql的份额页在持续增长。

缺点:

在海量数据处理的时候效率会显著变慢。

Mongodb是非关系型数据库(nosql ),属于文档型数据库。文档是mongoDB中数据的基本单元,类似关系数据库的行,多个键值对有序地放置在一起便是文档,语法有点类似javascript面向对象的查询语言,它是一个面向集合的,模式自由的文档型数据库。

存储方式:虚拟内存+持久化。

查询语句:是独特的Mongodb的查询方式。

适合场景:事件的记录,内容管理或者博客平台等等。

架构特点:可以通过副本集,以及分片来实现高可用。

数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。

成熟度与广泛度:新兴数据库,成熟度较低,Nosql数据库中最为接近关系型数据库,比较完善的DB之一,适用人群不断在增长。

优点:

快速!在适量级的内存的Mongodb的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。高扩展性,存储的数据格式是json格式!

缺点:

不支持事务,而且开发文档不是很完全,完善。

Mysql和Mongodb主要应用场景

1如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。(如日志之类) (2)从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如nodejs之类的语言来进行开发,对开发比较方便。 (3)mongodb本身的failover机制,无需使用如MHA之类的方式实现。

2将mongodb作为类似redis ,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和 ,也会有很多时候将mongodb做为辅助mysql而使用的类redis memcache 之类的缓存db来使用。 亦或是仅作日志收集分析。

---------------------

原文:>

以上就是关于mongodb 怎么执行sql全部的内容,包括:mongodb 怎么执行sql、laravel-mongodb 怎么运行 db.runCommand 这种语句、mongodb与mysql区别(超详细)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9585908.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存