Python 相关请求MySQL,MongoDB中的模拟
大家好,亲爱的同事们,我决定将一些项目从MySQL迁移到MongoDB,但遇到了一些困难: 例如,MySQL中有两个表: 用户:Python 相关请求MySQL,MongoDB中的模拟,python,mysql,mongodb,mongoengine,mongokit,Python,Mysql,Mongodb,Mongoengine,Mongokit,大家好,亲爱的同事们,我决定将一些项目从MySQL迁移到MongoDB,但遇到了一些困难: 例如,MySQL中有两个表: 用户: CREATE TABLE `testdb`.`users` ( `id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR( 55 ) NOT NULL , `password` VARCHAR( 32 ) NOT NULL ) ENGINE = MYISAM 规则: CREATE TABL
CREATE TABLE `testdb`.`users` (
`id` INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`name` VARCHAR( 55 ) NOT NULL ,
`password` VARCHAR( 32 ) NOT NULL
) ENGINE = MYISAM
规则:
CREATE TABLE `testdb`.`rules` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`uid` INT NOT NULL ,
`title` VARCHAR( 155 ) NOT NULL ,
`points` INT NOT NULL
) ENGINE = MYISAM
现在选择属于特定用户的所有“规则”,我可以发出SQL请求:
SELECT r.`title`, r.`points` FROM `rules` r, `users` u WHERE r.`uid` = u.`id` AND u.`id` = '123'
到目前为止,我还不知道如何在MongoDB中实现同样的功能,请您解释并提供一个示例
另外,我在pymongo的帮助下用Python实现
P.P.S.我还想看看在ORM mongoengine或mongokit的帮助下解决这个问题的其他方法
提前感谢:)MongoDB不支持连接,不像像mysql这样的RDBMS。这是因为MongoDB不是关系数据库。因此,在MongoDB中以与在RDBMS中相同的方式对数据进行建模通常是个坏主意——您必须以完全不同的思维方式设计模式 例如,在本例中,在MongoDB中,每个用户可以有一个文档,其中嵌套了属于每个用户的规则 e、 g 这意味着,您只需要一次读取就可以撤回用户及其所有规则 一个很好的起点是Mongodb.org上的参考——我上面所说的是嵌入对象
{
"ID" : 1,
"name" : "John",
"password" : "eek hope this is secure",
"rules": [
{
"ID" : 1,
"Title" : "Rule 1",
"Points" : 100
},
{
"ID" : 2,
"Title" : "Rule 2",
"Points" : 200
}
]
}