- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在mysql中我们写,
SELECT *
FROM Student , Course
WHERE Student.course_id = Course.id
AND Course.name = "English"
我们可以在 mongodb 中做与(在 PHP 中)相同的事情
$m = new MongoClient();
$db = $m->selectDB('test');
$collection1 = new MongoCollection($db, 'Course');
$cursor = $collection1->find(array("name"=>"English"));
$collection2 = new MongoCollection($db, 'Student');
foreach($cursor as $res) {
$cursor = $collection2->find(array("course_id"=>array($in=>$res['id'])));
//do something with the result
}
或者还有另一种使用预连接或嵌入集合的方法,如下所示。
$m = new MongoClient();
$db = $m->selectDB('test');
$collection1 = new MongoCollection($db, 'Student');
$cursor = $collection1->find(array("name"=>"Course.English"));
//do something with result
嵌入如下
Student=>array(
id=>...,
Course=>[]
)
1).我对什么是最好的解决方案感到困惑。2).在一个项目中多次单独使用两个集合时,什么是最好的。
最佳答案
由于经常使用两个集合,嵌入两个集合会导致操作变慢。 (单独访问集合中的数据。)所以在这里可以使用以下代码。
$m = new MongoClient();
$db = $m->selectDB('test');
$collection1 = new MongoCollection($db, 'Course');
$cursor = $collection1->find(array("name"=>"English"));
$collection2 = new MongoCollection($db, 'Student');
foreach($cursor as $res) {
$cursor = $collection2->find(array("course_id"=>array($in=>$res['id'])));
//do something with the result
}
in here if you need to retrive data from collection2,
$resArr = array();
foreach($cursor as $res) {
array_push($resArr ,$res['id']);
}
$cursor2 = $collection2->find(array("course_id"=>array($in=>$resArr)));
foreach($cursor2 as $res2) {
//do something with the result
}
关于php - 从mysql逆向到mongodb最合适的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054128/
我有一个 Windows 应用程序,它使用此 C 代码的反向(下面的解码)来加密用户密码: static void PasswordDecode(char * szPassword) { char s
我目前正在尝试“破解”一个 Linux 嵌入式设备。此设备有一个不应使用的 telnet 守护程序。不管怎样,我已经从制造商网站上获取了二进制固件并成功地提取了根文件系统。顺便说一下,我现在有了/et
前言 你可以独善其身 但你不能兼济天下 。 简介 其实这部分是使用教程,github上面有备份的下载链接,只是可能不更新了,V2.2安装之后 一把快刀,很简洁的界面 点击界面里
我在具有相关质量的 3D 框中有几个点(x、y、z 坐标)。我想绘制在给定半径 R 的球体中发现的质量密度直方图。 我已经编写了一个代码,如果我没有犯任何我认为我可能有的错误,它的工作方式如下: 我的
我有一个代码函数,我试图扭转它的影响,但没有成功。我原来的功能是: ror al,1 // rotates the al part of
我想知道,是否有任何指南可用于识别应用程序二进制文件中与符号链接(symbolic link)相关的函数? 我们以BusyBox为例,/bin/ping是/bin/BusyBox的符号链接(symbo
所以我在查看一个受感染的 WordPress 网站时看到了这个注入(inject)的 js。它基本上进行了一轮混淆(charCodeAt(13-3,9-2等)。然后,它输出以下内容: var key
我在尝试获取引用未审计实体的审计实体时遇到问题。在我们的应用程序中,某些实体是在不使用 hibernate 的情况下引导的,这些实体是我们的元模型,不需要审计。 工作示例: public class
背景: 我们有一个基于 maven 的 java 项目,目标是 JRE 1.7,但是源代码使用了 lambda,所以我们使用 retrolambda 来转换 Java 8 源代码到 Java 7。我们
我是一名优秀的程序员,十分优秀!