You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
在许多情况下, 非规范化数据模型(嵌入式文档和数组) denormalized data model (embedded documents and arrays) 将继续是您数据和用例的最佳选择,而不是多文档事务. 也就是说,对于许多场景,对数据进行适当的建模将最大限度地减少对 多文档事务(multi-document transactions)的需求。
前言
很多开发者首次接触数据库(通常是在高校课堂)的概念,或者说接触第一个数据库,通常是 SQL 数据库,而现在,NoSQL 数据库越来越流行,很多原 SQL 数据的使用者难免有转向 NoSQL 的需求。而作为 NoSQL 数据库的代表,MongoDB 在社区越来越流行,生产环境的使用也日益广泛。
对于 SQL 转战 NoSQL的开发人员来说,最难的一步其实是将原有的 SQL 的概念和知识直接复用过来,最大化的减小学习的成本。
其实,这一步 MongoDB 官方已经为大家考虑到了,那就是在:
MongoDB CRUD Operations
>MongoDB CRUD Operations
> SQL to MongoDB Mapping Chart,这篇文档非常好的总结了 SQL 对应 MongoDB 的术语和概念,还有可执行文件、SQL 语句/MongoDB 语句等,可以说对于 SQL 数据库开发人员,如果理解了他们之间的对应关系,那么就一只脚就迈进了 MongoDB 的大门。
Terminology and Concepts
下表介绍了各种 SQL 术语和概念以及相应的 MongoDB 术语和概念.
embedded documents (嵌入式文档)
aggregation pipeline (聚合管道)
参考:SQL to Aggregation Mapping ChartExecutables
下表显示了一些数据库可执行文件和相应的 MongoDB 可执行文件。 这张表并不是详尽无遗的。
Examples
下表显示了各种 SQL 语句和相应的 MongoDB 语句。 表中的例子假定以下条件:
Create and Alter
CREATE TABLE
在第一个 insertOne() 或 insertMany() 操作上隐式创建。 如果没有指定
_id
字段,则自动添加主键_id
。但是,您也可以显式地创建一个集合:
ALTER TABLE / ADD
集合不描述或强制执行其文档的结构;也就是说,在集合级别上没有结构上的改变。
但是,在文档级别,updateMany() 操作可以使用 $set 操作符向现有文档添加字段。
ALTER TABLE / DROP COLUMN
集合不描述或强制执行其文档的结构;也就是说,在集合级别上没有结构上的改变。
但是,在文档级别,updateMany() 操作可以使用 $unset 操作符从文档中删除字段。
CREATE INDEX
CREATE INDEX / Multi
DROP TABLE
更多有关使用的方法和操作符的详细信息,请参阅:
另见:
Insert
下表显示了与向表中插入记录相关的各种 SQL 语句以及相应的 MongoDB 语句。
有关更多信息,请参见 db.collection.insertOne()。
另见:
Select
下表显示了与从表中读取记录相关的各种 SQL 语句以及相应的 MongoDB 语句。
SELECT ... WHERE
SELECT ... AND
SELECT ... OR
SELECT ... LIKE
SELECT ... OEDER BY
SELECT ... COUNT
SELECT DISTINCT
SELECT ... LIMIT SKIP
EXPLAIN SELECT
有关所使用的方法的详细信息,请参阅:
运算符(operators):
另见:
Update Records
下面显示了与更新表中现有记录相关的各种 SQL 语句以及相应的 MongoDB 语句。
UPDATE ... SET
UPDATE ... INC
有关示例中使用的方法和运算符的详细信息,请参阅:
另见:
Delete Records
下面显示了与从表中删除记录相关的各种 SQL 语句以及相应的 MongoDB 语句。
DELETE WHERE
DELETE
有关更多信息,请参见 db.collection.deleteMany()。
看到这里,想必大家应该已经将脑海中 SQL 相关的知识和 MongoDB 一一对应起来了,那么剩下的就需要大家多多的实践,深入挖掘。
但是无论何时,都要记住,MongoDB 官方文档 绝对是你能找到的最权威、最全面的资料。
The text was updated successfully, but these errors were encountered: