标签: mongodb-php

mongodb php - 如何做"INNER JOIN"式查询

我正在使用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)

mongodb mongodb-php

8
推荐指数
4
解决办法
2万
查看次数

MongoDB:使用save()更新集合中的现有文档

每一个人.我喜欢漫画.而现在我也在学习爱蒙哥:-)

有一个解释说明如何使用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 mongodb-php

8
推荐指数
1
解决办法
2万
查看次数

使用Mongodb ObjectID作为文档ID?

我正在尝试用mongoDB制作一块电路板.

我想用ObjectID分配文档ID.

如果用户可以通过http://www.example.com/4easdf123123访问文档页面, 其中"4easdf123123"是mongoDB ObjectID.

是否存在任何可能的安全威胁,如果我在URL中使用并显示mongo ObjectID并将其用作文档ID?

以及使用mongoDB分配文档ID的任何建议?

php mongodb mongodb-php

8
推荐指数
1
解决办法
2392
查看次数

在RockMongo中更改默认用户名/密码

我刚刚按照这些说明设置了RockMongo ,但我看不到如何从默认值(admin/admin)更改我的用户名/密码.

在config.php文件中有两个注释掉的行来设置mongo_user和mongo_pass,但这些是特定于数据库的(我相信),我已经尝试更改它们,但RockMongo的登录凭据仍然是admin/admin.

谁知道如何改变它们?

php mongodb mongodb-php

8
推荐指数
1
解决办法
9103
查看次数

MongoDB shell在php和python中的db.stats()

我可以看到Mongo shell的统计数据为

db.stats()
Run Code Online (Sandbox Code Playgroud)

要么

db.collection_name.stats()
Run Code Online (Sandbox Code Playgroud)

如何从PHP和Python查看数据库或集合的统计信息.

编辑:我已经在PHP中完成了它,但仍然无法在Python中完成它.

救命?

database mongodb pymongo mongodb-php

8
推荐指数
2
解决办法
7014
查看次数

Mongodb查询特定月份|年份不是日期

如何查询mongodb中的特定月份,而不是日期范围,我需要月份来制作当月的客户生日列表.

在SQL中将是这样的:

SELECT * FROM customer WHERE MONTH(bday)='09'
Run Code Online (Sandbox Code Playgroud)

现在我需要在mongodb中翻译它.注意:我的日期已经保存在MongoDate类型中,我用这种思维方式以前很容易上班,但现在我找不到如何做这个简单的事情.

mongodb mongodb-php mongodb-query

8
推荐指数
4
解决办法
2万
查看次数

MongoDB PHP使用带数组的$ in

我正在使用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->信息()

并且数组中的项目是相同的.

我有什么想法我做错了吗?

谢谢!

php mongodb mongodb-php

7
推荐指数
1
解决办法
1万
查看次数

使用Mongo Aggregation/Mongo聚合的性能可以做些什么

我构建了一个MongoDB.我想通过某些分组进行聚合.我找到了这个文件,它会为我做这件事.一切都很好,但指出了一些限制:

  1. 管道输出只能包含16兆字节.如果结果集超出此限制,则aggregate命令会产生错误.

  2. 如果任何单个聚合操作占用系统RAM的10%以上,则操作将产生错误.

  3. 聚合系统当前将$group操作存储在存储器中,这可能在处理大量组时引起问题.

我可以使用MongoDB聚合处理多少行/文档?我不敢用这个.任何人都可以指导我这个吗?

mongodb mongodb-php

7
推荐指数
1
解决办法
4897
查看次数

如何在Laravel Framework中使用MongoDB

我在使用带有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 laravel-4

7
推荐指数
1
解决办法
4万
查看次数

从具有相同文档结构的多个集合中查询(查找许多)文档(MongoDB和PHP)

我使用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_1user_1_list_2user_1_list_3 ...)(结构相同)中查找文档,而不仅仅是从一个特定的文档中查找?这有可能吗?如果是,您将如何做?

php mongodb mongodb-php

7
推荐指数
1
解决办法
233
查看次数

标签 统计

mongodb-php ×10

mongodb ×9

php ×4

database ×1

laravel-4 ×1

mongodb-query ×1

pymongo ×1