📜  Phalcon-对象文档映射器

📅  最后修改于: 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概念包括创建一个与给定表名关联的模型,正如我们在前几章中所看到的。它遵循所有参照完整性约束。

对象文档映射器(ODM)

它是与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与文档中的记录不匹配,则由于获取了记录数,因此不会显示适当的输出。

资料显示