不停的删库才能让自己变得更强

基础知识

db表示当前数据库

db.messages.find表示查找

SQL术语/概念 MongoDB术语/概念 解释/说明
database database 数据库
table collection 数据库表/集合
row document 数据记录行/文档
column field 数据字段/域
index index 索引
table joins 表连接.MongoDB不支持
primary key primary key 主键MongoDB自动将_id字段设置为主键

MongoDB行是以键值对的形式存在的

只管放键值对数据,不像sql有那么多的限制

在数据库中可以执行js代码

1
2
3
4
5
6
7
8
db.users.find();
db;
var a=123;
var b=456;
c = a+b;
for(var i = 1; i<10; i++){
123;
}

use name 就相当于创建了一个新库。但如果没有在库中新建表,那么库就不会显现出来。

当我们想删除MongoDB中的某个数据库时,需要进入那个数据后再进行删除

1
db.dropDatabase();
创建/删除数据库 创建/删除数据集合
use DATABASENAME db.createCollection(name,options)
db.dropDatabase() db.collectionname.drop()
插入数据 查询数据
db.COLLECTION_NAME.insert(document) db.COLLECTION_NAME.find(query)
document = {“username”:”zs”,”password”:”123456”,”age”:18} query = {“age”:{$it:20}}
查询数据-条件
$lt => < $lte => <=
$gt => > $gte => >=
$ne => != $regex 正则

在不同版本PHP中能使用的MongoDB扩展库是不同的

在PHP7.0系列只能使用MongoDB数据库,使用的数据库连接方式为:

1
$manager = new MongoDB\Driver\Manager

在PHP5.0时能使用mongo和monogoDB扩展库,使用的数据库连接方式为:

1
$m = new MongoClient();

这两种连接方式都能使用这三种查询方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
一.JS代码执行
$query = array(
'$where' => "function login() {var username = '".$username."';var password = '".$password."';if(username == 'admin' && password == '123456') return true; else{ return false;}}"
);

二.数组查询
$query = array(
'username' => $username,
'password' => $password,
);

三.拼接查询
$cmd = new MongoDB\Driver\Command([
'eval'=>
'db.messages.find({"author":"'.$username.'"}).sort({"addtime":-1});'
]);

MongoDB相关配置信息

MongoDB默认监听本地的27017端口 (127.0.0.1:27017),且默认不需要帐号密码登陆。如果我们想要外部访问的话,需要设置 /etc/rc.local配置文件。在里面加上 mongod –bind_ip_all ,不然只能本地访问。

有些网站是占库分离的,web服务器上只有APACHE 、PHP 。有一台专门的数据库服务器,这样的安全性比较高。但随之而来的风险就是要对外开放3306端口,可能会造成被爆破的风险。

NOSQL不止MongoDB数据库,还有其他的非关系型数据库。

1
MongoDB、Cassandra、CouchDB、Hypertable、Redis

MongoDB数据库不仅可以执行数据查询语句,还可以执行JS代码。MongoDB数据库支持各种编程语言:RUBY,PYTHON,JACA,C++,PHP,C#等多种语言。常与PYTHON JS 一起使用,且ASP的网站基本都不使用MongoDB数据库。

MongoDB是sql数据库和NOsql数据库的集合,所以有库。