首先启动mongod服务器;
打开一个shell客户端:
use haha
db.haha.insert({'a':'aaa'})
db.haha.find()
{'a':'aaa'} // 添加成功了
打开另一个shell客户端:
use haha
db.haha.find() // 确认一下刚才的输入
{'a':'aaa'} // 果然有效
可以看到,shell客户端里是有效果的。
下面是php代码:
$m = new MongoClient();
$jihe = $m->db->haha;
$cursor = $jihe->find();
foreach($cursor as $item){
var_dump($item); //什么都没有,空数据
}
然后修改php代码为:
$m = new MongoClient();
$jihe = $m->db->haha;
$doc = array('b'=>'bbb');
$jihe->insert($doc); // php自己试着插入数据
$cursor = $jihe->find();
foreach($cursor as $item){
var_dump($item); //这次仅有 {'b':'bbb'}数据,没有shell里面设置的{'a':'aaa'}
}
这是怎么回事呢?都是针对同一个数据库发起的操作啊。shell客户端和php访问,怎么有如此差异?
推测:shell连的是haha,php连的是db,这是2个数据库空间。
打开一个shell客户端,输入命令
show dbs
输出结果除了haha,是不是还有一个db?如果是Yes
$jihe = $m->db->haha;
应该改为
$jihe = $m->haha->haha;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。