MongoClient::__construct

(PECL mongo >=1.3.0)

MongoClient::__construct����һ���µ����ݿ����Ӷ���

˵��

public MongoClient::__construct ([ string $server = "mongodb://localhost:27017" [, array $options = array("connect" => TRUE) ]] )

���û�д���������������ӵ� "localhost:27017"������ php.ini ��ָ���� mongo.default_host �� mongo.default_port����

server Ӧ������������ʽ��

mongodb://[username:password@]host1[:port1][,host2[:port2:],...]/db

�����ַ��������� mongodb:// ��ͷ����ʾ����һ�������ַ�����

���ָ���� username �� password�����������ڷ���ǰ������֤�������ݿ⡣ �û����������ǿ�ѡ�ģ���Ҫָ��ʱ�������һ�� @��

����ָ��һ���������˿ڿ�ѡ��Ĭ������ 27017�������ҿ������ӵ���Ҫ������������ �������ɶ��ŷָ�����������ɹ����أ�������ӵ�������һ�������� ����޷����ӵ��κ��������������׳�һ���쳣 MongoConnectionException��

�����ָ����һ���û��������룬�����ָ��һ��Ҫ��֤�����ݿ⡣ ���û��ָ�� db������ʹ�� "admin"��

��ѡ�IJ�ѯ�ַ�����������ָ�������ѡ� ͬ������Ҳ֧�� options ���顣

ѡ���һ����ָʾ�������ڼ�Ⱥ�����¶Ա��ݽڵ���ζ�ȡ�� ���ڶ�ȡ��ѡ�����еĶ�����Ϣ���Բ��� ��ȡ��ѡ�� �ĵ�ҳ�档

����

server

����������

options

�����ӵ�����ѡ���ǰ��Ч��ѡ������ˣ�

  • "connect"

    �������Ƿ�Ӧ���ڷ���ǰ���ӡ� Ĭ��Ϊ TRUE��������Ϊ FALSE�����������в�ѯ��Ҫʱ �Զ� ���ӵ��������� ���⣬��Ҳ������ MongoClient::connect() �ֶ����С�

    Warning

    ���ѡ�֧��ͨ�������ַ��������á�

  • "db"

    Ҫ��֤�����ݿ���������ָ�����������������б��а������� �ܹ����������б���ָ�������ݿ⡣

  • "password"

    ��������ָ�����룬�������������б���ָ���� ����������һ�� "@" ��ʱ���������á� �˲����Ḳ�������б������õ����롣

  • "readPreference"

    ָ����ȡ��ѡ�����͡� ��ȡ��ѡ���ṩ�˶Ա������ݶ�ȡ�Ŀ��ơ�

    �����ֵ�У� MongoClient::RP_PRIMARY�� MongoClient::RP_PRIMARY_PREFERRED�� MongoClient::RP_SECONDARY�� MongoClient::RP_SECONDARY_PREFERRED �� MongoClient::RP_NEAREST��

    ������Ϣ�μ���ȡ��ѡ���ĵ���

  • "readPreferenceTags"

    ���ַ���������ָ����ȡѡ���ǩ�� ��ǩ�ܹ����� readPreference ѡ������һ�����ƴӱ��ݽڵ����ݵĶ�ȡ��

    ������Ϣ�μ���ȡ��ѡ���ĵ���

  • "replicaSet"

    Ҫ���ӵļ�Ⱥ���ơ� ���ָ���ˣ���Ծ�ڵ��ܹ��Զ���⵽�� ����ζ�������ܹ����������ܹ����ӵ�δ�г��ķ������� ����ϸ�ڲμ���Ⱥ�����ӡ�

  • "connectTimeoutMS"

    �����ӳ�ʱ��ʱ�䡣

  • "timeout"

    "connectTimeoutMS" �����ı�����

  • "socketTimeoutMS"

    ���׽����Ϸ��ͻ���ճ�ʱ��ʱ�䡣

    Note: ���ǿͻ��˵ij�ʱʱ�䡣���һ�� insert �ﵽ�� socketTimeoutMS�� ���޷���֪�������Ƿ�ȷʵ��д�롣

  • "username"

    ��������ָ���û������������������б���ָ���� ���û�������һ����:��ʱ�������á� ���Ḳ�������б��е����á�

  • "w"

    ѡ�� w ָ���������� Write Concern��������������д��ʱ������ʱ�䡣 Ĭ��ֵ�� 1��

    ��ѡ�������ڵ�̨�����������Ǽ�Ⱥ�� һ������ֵ����������������֮ǰ�������ٸ��ڵ����Ӧ��д���ָ� ֵ 1 ���õ�̨���������߻�Ծ�ڵ㣨�ڼ�Ⱥ�Ӧ��д������� ֵ 3 ����������ֱ��д�뵽��Ծ�ڵ�������������ݽڵ���������ڼ�Ⱥ���

    һ���ַ�����ֵ���ڿ��ƿ��� write concerns �ı�ǩ���� "majority" ����������ȷ��д�������Ӧ���ڴ���������� 50%������Ľڵ㡣

  • "wTimeout"

    ��ѡ�����ں� "w" �������ʹ�á� �������˷������ȴ����ٺ��������� write concern�� �����ʱ�ˣ��������׳� MongoCursorException �쳣��

����ֵ

����һ���µ����ݿ����Ӷ���

�����쳣

����������������޷����ӣ������׳� MongoConnectionException �쳣�� ����ṩ����Ч���û��������뽫���׳�һ�� MongoConnnectionException�� �μ� MongoConnectionException ����ĵ���ȡ�쳣������ԭ��

������־

�汾 ˵��
1.3.4

����� "connectTimeoutMS" �� "socketTimeoutMS" ѡ�

1.3.0

����� "readPreference"�� "readPreferenceTags"��"w" �� "wTimeout" ѡ�

1.2.0

����� "username" �� "password" ѡ�

�Ƴ��� "persist" ѡ����е����Ӷ��dz־õġ����Ծ��ܹ�ʹ�ã����Dz������á�

"persist"

�Ƿ�Ӧ���dz־����ӡ���������ˣ����ӻ��dz־����ӡ� �ַ���ʽ��ֵ�����������ӵ� ID������������ array("persist" => "foobar") ��ʼ���� MongoClient ʵ���Ṳ��һ�����ݿ����ӣ��� array("persist" => "barbaz")��ʼ����ʵ����ʹ�ò�ͬ�����ݿ����ӡ�

"replicaSet" ѡ������֧��һ���ַ����������Dz���ֵ��

1.0.9 ����� "replicaSet" ѡ�
1.0.2

�޸Ĺ�����֧��ѡ�����顣�� 1.0.2 ֮ǰ���������������²�����

server

����������

connect

��ѡ�� boolean ����ָ���˹������Ƿ�Ӧ���ڷ���ǰ���ӵ����ݿ⡣Ĭ��Ϊ TRUE��

persistent

�����Ƿ�Ӧ���dz־õġ�

paired

�����Ƿ�Ӧ��Ϊ paired ģʽ��

����

Example #1 MongoClient::__construct() ��Ⱥ����

���������ʾ��������ӱ�������һ����Ⱥ�� ���������������������ļ�Ⱥ�� sf1.example.com��sf2.example.com �� ny1.example.com�� ��Ծ�ڵ��������������һ����

<?php

// ���ݶ��ŷָ��ķ����������б�������
// ע�����Dz���Ҫ���뼯Ⱥ�����г�Ա�������ܹ���ȡ�������б�
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

�����ǰ��Ծ�ڵ�����ʧ�ܣ��������������ýڵ��������Ϊ�µĻ�Ծ�ڵ㣬���Զ����ø����ӡ� ���û��ָ�� replicaSet���Զ��ݴ���ת���޷�����������

���������ӵļ�Ⱥ�����б������Ҫ��һ�����������ߵġ�

��������������λ�����������ļ�Ⱥ���������Ϊ������Ԥ�⡣

������ڼ�Ⱥ����Ϣ�μ�» �����ĵ���

Example #2 ���ӵ�һ�����׽��֣�domain socket��

�� 1.0.9+ �汾�У������ʹ��һ�� UNIX ���׽��������ӵ�һ�����ص� MongoDB ʵ���� ����ܻ��ʹ������������΢��һ�㡣

�ڰ汾 1.5.0��MongoDB ���������Զ��� /tmp/mongodb-<port>.sock �ϵ��׽��֡� ������������ַ�����ָ��λ�ã�

<?php

// MongoDB �����������ڱ��� 20000 �˿���
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

��Ҳ���Ժ�������Ҫ��������ϣ�

<?php

// �������ӵ��׽��֣�ʧ��ʱʹ�� localhost ����
$m = new MongoClient("mongodb:///tmp/mongodb-27017.sock,localhost:27017");

?>

Example #3 MongoClient::__construct() ��֤������

�ڳ�����֤ʱ���û���������� admin ���ݿ⡣ �����ͨ���նˣ��� Mongo ����һ����

> use admin
switched to db admin
> db.addUser("testUser", "testPass");
{
        "_id" : ObjectId("4b21272fd9ab21611d19095c"),
        "user" : "testUser",
        "pwd" : "03b9b27e0abf1865e2f6fcbd9845dd59"
}
>

����һ���û���������������û���Ϊ "testUser" ��������Ϊ "testPass"������Դ���һ����֤������ӣ�

<?php

$m 
= new MongoClient("mongodb://testUser:testPass@localhost");

?>

Example #4 MongoClient::__construct() ��ȡѡ������

<?php

// ��ѡ "east" ������������ķ�����
$uri  'mongodb://rs1.example.com,rs2.example.com/';
$uri .= '?readPreference=nearest';
$uri .= '&readPreferenceTags=dc:east';
$m = new MongoClient($uri, array('replicaSet' => 'rs'));

������Ϣ�μ����ֲ�����ȡѡ��һ�ڡ�