📅  最后修改于: 2020-10-21 05:31:34             🧑  作者: Mango
在开始使用对象关系映射器(ORM)和对象文档映射器(ODM)的概念之前,了解SQL数据库与NoSQL数据库之间的区别非常重要。
下表突出显示了SQL和NoSQL之间的区别-
SQL | NoSQL |
---|---|
They are also termed as Relational Databases (RDBMS) | They are called as non-relational or distributed database |
The structure of database is constituted as tables and views | It consists of document based and graph databases |
It includes a predefined schema | It has a dynamic schema |
It is very powerful for defining and manipulating data | It is powerful in maintaining data as collection of documents |
Phalcon可以与SQL和NoSQL数据库进行映射。这通过NoSQL数据库的对象文档映射器(ODM)和SQL数据库的对象关系映射器(ORM)的帮助来实现。
在Phalcon中,ORM概念包括创建一个与给定表名关联的模型,正如我们在前几章中所看到的。它遵循所有参照完整性约束。
它是与NoSQL数据库关联的对象。顾名思义,它映射了与文档相关的模块。 Phalcon使用它来映射MongoDB等数据库。
步骤1-创建名为“ test”的MongoDB数据库。我们将使用该数据库进行映射并获得适当的响应。
步骤2-检查数据库中插入的记录。与之关联的命令是-
db.collection.find()
可以看到,每个文档都使用ObjectId映射,这是ODM的功能。 ObjectId的值是唯一的,以后用于获取有关该特定ID的所有存储数据。
步骤3-为创建的数据库设置模型。模型是扩展Phalcon \ Mvc \ Collection的类。 Test.php模型将包含以下代码。
setSource("test");
}
}
步骤4-配置项目,包括在services.php中的数据库连接。
// Simple database connection to localhost
$di->set(
"mongo",
function () {
$mongo = new MongoClient();
return $mongo->selectDB("test");
},
true
);
// Connecting to a domain socket, falling back to localhost connection
$di->set(
"mongo",
function () {
$mongo = new MongoClient(
"mongodb:///tmp/mongodb-27017.sock,localhost:27017"
);
return $mongo->selectDB("test");
},
true
);
第5步-在TestController.php的帮助下打印关于ObjectId的值。
data;
}
}
输出将显示与objectId匹配的数据。如果objectId与文档中的记录不匹配,则由于获取了记录数,因此不会显示适当的输出。