我正在使用Mongo PHP扩展.
我的数据如下:
users
{
"_id": "4ca30369fd0e910ecc000006",
"login": "user11",
"pass": "example_pass",
"date": "2010-09-29"
},
{
"_id": "4ca30373fd0e910ecc000007",
"login": "user22",
"pass": "example_pass",
"date": "2010-09-29"
}
news
{
"_id": "4ca305c2fd0e910ecc000003",
"name": "news 333",
"content": "news content 3333",
"user_id": "4ca30373fd0e910ecc000007",
"date": "2010-09-29"
},
{
"_id": "4ca305c2fd0e910ecc00000b",
"name": "news 222",
"content": "news content 2222",
"user_id": "4ca30373fd0e910ecc000007",
"date": "2010-09-29"
},
{
"_id": "4ca305b5fd0e910ecc00000a",
"name": "news 111",
"content": "news content",
"user_id": "4ca30369fd0e910ecc000006",
"date": "2010-09-29"
}
Run Code Online (Sandbox Code Playgroud)
如何从PHP运行类似这样的查询?
SELECT n.*, u.*
FROM news AS n
INNER JOIN users …Run Code Online (Sandbox Code Playgroud) 每一个人.我喜欢漫画.而现在我也在学习爱蒙哥:-)
有一个解释说明如何使用save()来更新MongoDB PHP中集合中的现有文档?但我无法将其应用于PHP的"现实":-)
> var mongo = db.things.findOne({name:"mongo"});
> print(tojson(mongo));
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo"}
> mongo.type = "database";
database
> db.things.save(mongo);
> db.things.findOne({name:"mongo"});
{"_id" : "497dab624ee47b3a675d2d9c" , "name" : "mongo" , "type" : "database"}
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码:
<?php
$a=array('_id'=>'test_a','field1'=>'anything');
$b=array('_id'=>'test_a','field2'=>'anything else');
$m=new Mongo();
$c=$m->db->test;
$c->save($a);
$c->save($b);//overwrites the previous record
/*
//With update() it works fine
$filter=array('_id'=>'test_a');
$update=array('$set'=>array('field2'=>'anything else'));
$c->update($filter,$update);
//$c->save($filter,$update);//Also tried...
*/
$f=$c->find();
echo $f->count()." found \n";
$i=iterator_to_array($f);//mongo cursos iterator
$m->close();//disconnect mongo
print_r($i);
?>
Run Code Online (Sandbox Code Playgroud)
事实是,在PHP示例中,save()会覆盖该对象,而在JS示例中,它会更新它.我希望我可以像在JS中一样在PHP中重现.
提前致谢.
我正在尝试用mongoDB制作一块电路板.
我想用ObjectID分配文档ID.
如果用户可以通过http://www.example.com/4easdf123123访问文档页面, 其中"4easdf123123"是mongoDB ObjectID.
是否存在任何可能的安全威胁,如果我在URL中使用并显示mongo ObjectID并将其用作文档ID?
以及使用mongoDB分配文档ID的任何建议?
我刚刚按照这些说明设置了RockMongo ,但我看不到如何从默认值(admin/admin)更改我的用户名/密码.
在config.php文件中有两个注释掉的行来设置mongo_user和mongo_pass,但这些是特定于数据库的(我相信),我已经尝试更改它们,但RockMongo的登录凭据仍然是admin/admin.
谁知道如何改变它们?
我可以看到Mongo shell的统计数据为
db.stats()
Run Code Online (Sandbox Code Playgroud)
要么
db.collection_name.stats()
Run Code Online (Sandbox Code Playgroud)
如何从PHP和Python查看数据库或集合的统计信息.
编辑:我已经在PHP中完成了它,但仍然无法在Python中完成它.
救命?
如何查询mongodb中的特定月份,而不是日期范围,我需要月份来制作当月的客户生日列表.
在SQL中将是这样的:
SELECT * FROM customer WHERE MONTH(bday)='09'
Run Code Online (Sandbox Code Playgroud)
现在我需要在mongodb中翻译它.注意:我的日期已经保存在MongoDate类型中,我用这种思维方式以前很容易上班,但现在我找不到如何做这个简单的事情.
我正在使用MongoDB和PHP,并尝试根据生成的数组执行$ in.
当我手动指定相同的数组时,它可以工作,但是当我构建它时,它会返回具有相同数据的任何结果.
我有我的东西:
$settings = array();
foreach($items as $item) {
$settings[] = $item['id'];
}
//Settings is the same as this
$setting2 = array(1,2,3,4,5,6,7,8);
//This returns no results
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $settings)));
//This does return results
$cursor = $collection->find(array('status' => 0, 'sid' => array('$in' => $setting2)));
Run Code Online (Sandbox Code Playgroud)
我已经查过了
$ CURSOR->信息()
并且数组中的项目是相同的.
我有什么想法我做错了吗?
谢谢!
我在使用带有Laravel框架的MongoDB时遇到了问题.我使用了这个Laravel-MongoDB
这是我得到的错误
/app/model/User.php
<?php
use Jenssegers\Mongodb\Model as Eloquent;
class User extends Eloquent {
//protected $connection = 'mongodb';
protected $collection = 'users';
$user = User::all();
public function all()
{
return $this->$user;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
/app/routes.php
Route::get('users', function()
{
$users = User::all();
return View::make('users')->with('users',$users);
});
Run Code Online (Sandbox Code Playgroud)
/app/config/database.php
'mongodb' => array(
'driver' => 'mongodb',
'host' => 'localhost',
'port' => 27017,
'username' => 'username',
'password' => 'password',
'database' => 'users'
),
Run Code Online (Sandbox Code Playgroud)
我不知道我的实施有什么问题.请帮帮我们..
我使用MongoDB PHP v1.3,在我的MongoDB中,我有多个集合:
// COLLECTION NAMES:
- user_1_list_1
- user_1_list_2
- user_1_list_3
...
- user_1_list_55
Run Code Online (Sandbox Code Playgroud)
所有这些集合都具有相同的文档结构:
{
first_name
last_name
phone
}
Run Code Online (Sandbox Code Playgroud)
如何同时查询所有这些集合中的文档?在文档中,说明了如何从一个集合中查询(查找许多)文档:https : //docs.mongodb.com/php-library/v1.3/tutorial/crud/#find-many-documents。
例如,就我而言,它看起来像这样:
$collection_name = "user_1_list_1";
$collection = $this->db->{$collection_name};
$query = [];
$cursor = $collection->find(
$query,
[
'limit' => 10,
'skip' => 0,
'sort' => ['first_name' => 1],
]
);
Run Code Online (Sandbox Code Playgroud)
...但这只会从一个集合中找到文档(在这种情况下,只能从名称为“ user_1_list_1 ” 的集合中找到文档)。
如何从所有这些集合(user_1_list_1,user_1_list_2,user_1_list_3 ...)(结构相同)中查找文档,而不仅仅是从一个特定的文档中查找?这有可能吗?如果是,您将如何做?