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锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节凤拷锟斤拷前锟斤拷锟斤拷锟斤拷证锟斤拷锟斤拷锟斤拷锟捷库。 锟矫伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟角匡拷选锟侥o拷锟斤拷要指锟斤拷时锟斤拷锟斤拷锟斤拷锟揭伙拷锟� @锟斤拷

锟斤拷锟斤拷指锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟剿口匡拷选锟斤拷默锟斤拷锟斤拷锟斤拷 27017锟斤拷锟斤拷锟斤拷锟揭匡拷锟斤拷锟斤拷锟接碉拷锟斤拷要锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 锟斤拷锟斤拷锟斤拷锟缴讹拷锟脚分革拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷晒锟斤拷锟斤拷兀锟斤拷锟斤拷锟斤拷锟接碉拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷 锟斤拷锟斤拷薹锟斤拷锟斤拷拥锟斤拷魏锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷壮锟揭伙拷锟斤拷斐� MongoConnectionException锟斤拷

锟斤拷锟斤拷锟街革拷锟斤拷锟揭伙拷锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷耄拷锟斤拷锟斤拷指锟斤拷一锟斤拷要锟斤拷证锟斤拷锟斤拷锟捷库。 锟斤拷锟矫伙拷锟街革拷锟� db锟斤拷锟斤拷锟斤拷使锟斤拷 "admin"锟斤拷

锟斤拷选锟侥诧拷询锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷锟斤拷锟斤拷锟窖★拷睢� 同锟斤拷锟斤拷锟斤拷也支锟斤拷 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: 锟斤拷锟角客伙拷锟剿的筹拷时时锟戒。锟斤拷锟揭伙拷锟� insert 锟斤到锟斤拷 socketTimeoutMS锟斤拷 锟斤拷锟睫凤拷锟斤拷知锟斤拷锟斤拷锟斤拷锟角凤拷确实锟斤拷写锟诫。

  • "username"

    锟斤拷锟斤拷锟斤拷锟斤拷指锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫憋拷锟斤拷指锟斤拷锟斤拷 锟斤拷锟矫伙拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷:锟斤拷时锟斤拷锟斤拷锟斤拷锟矫★拷 锟斤拷锟结覆锟斤拷锟斤拷锟斤拷锟叫憋拷锟叫碉拷锟斤拷锟矫★拷

  • "w"

    选锟斤拷 w 指锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 Write Concern锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷写锟斤拷时锟斤拷锟斤拷锟斤拷时锟戒。 默锟斤拷值锟斤拷 1锟斤拷

    锟斤拷选锟斤拷锟斤拷锟斤拷锟节碉拷台锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟角硷拷群锟斤拷 一锟斤拷锟斤拷锟斤拷值锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷之前锟斤拷锟斤拷锟斤拷锟劫革拷锟节碉拷锟斤拷锟接︼拷锟叫达拷锟斤拷指锟筋。 值 1 锟斤拷锟矫碉拷台锟斤拷锟斤拷锟斤拷锟斤拷锟竭伙拷跃锟节点(锟节硷拷群锟斤)应锟斤拷写锟斤拷锟斤拷锟斤拷锟� 值 3 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷直锟斤拷写锟诫到锟斤拷跃锟节碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷萁诘锟斤拷锟斤拷锟斤拷锟斤拷锟节硷拷群锟斤)锟斤拷

    一锟斤拷锟街凤拷锟斤拷锟斤拷值锟斤拷锟节匡拷锟狡匡拷锟斤拷 write concerns 锟侥憋拷签锟斤拷锟斤拷 "majority" 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷确锟斤拷写锟斤拷锟斤拷锟斤拷锟接︼拷锟斤拷诖锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 50%锟斤拷锟斤拷锟斤拷慕诘恪�

  • "wTimeout"

    锟斤拷选锟斤拷锟斤拷锟节猴拷 "w" 锟斤拷锟斤拷锟斤拷锟绞癸拷谩锟� 锟斤拷锟斤拷锟斤拷锟剿凤拷锟斤拷锟斤拷锟饺达拷锟斤拷锟劫猴拷锟斤拷锟斤拷锟斤拷锟斤拷 write concern锟斤拷 锟斤拷锟斤拷锟绞憋拷耍锟斤拷锟斤拷锟斤拷锟斤拷壮锟� MongoCursorException 锟届常锟斤拷

锟斤拷锟斤拷值

锟斤拷锟斤拷一锟斤拷锟铰碉拷锟斤拷锟捷匡拷锟斤拷锟接讹拷锟斤拷

锟斤拷锟斤拷锟届常

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷薹锟斤拷锟斤拷樱锟斤拷锟斤拷锟斤拷壮锟� MongoConnectionException 锟届常锟斤拷 锟斤拷锟斤拷峁╋拷锟斤拷锟叫э拷锟斤拷没锟斤拷锟斤拷锟斤拷锟斤拷虢拷锟斤拷壮锟揭伙拷锟� MongoConnnectionException锟斤拷 锟轿硷拷 MongoConnectionException 锟斤拷锟斤拷牡锟斤拷锟饺★拷斐o拷锟斤拷锟斤拷锟皆拷锟�

锟斤拷锟斤拷锟斤拷志

锟芥本 说锟斤拷
1.3.4

锟斤拷锟斤拷锟� "connectTimeoutMS" 锟斤拷 "socketTimeoutMS" 选锟筋。

1.3.0

锟斤拷锟斤拷锟� "readPreference"锟斤拷 "readPreferenceTags"锟斤拷"w" 锟斤拷 "wTimeout" 选锟筋。

1.2.0

锟斤拷锟斤拷锟� "username" 锟斤拷 "password" 选锟筋。

锟狡筹拷锟斤拷 "persist" 选锟筋,锟斤拷锟叫碉拷锟斤拷锟接讹拷锟角持久的★拷锟斤拷锟皆撅拷锟杰癸拷使锟矫o拷锟斤拷锟角诧拷锟斤拷锟斤拷锟矫★拷

"persist"

锟角凤拷应锟斤拷锟角持撅拷锟斤拷锟接★拷锟斤拷锟斤拷锟斤拷锟斤拷耍锟斤拷锟斤拷踊锟斤拷浅志锟斤拷锟斤拷印锟� 锟街凤拷锟斤拷式锟斤拷值锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟接碉拷 ID锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷 array("persist" => "foobar") 锟斤拷始锟斤拷锟斤拷 MongoClient 实锟斤拷锟结共锟斤拷一锟斤拷锟斤拷锟捷匡拷锟斤拷锟接o拷锟斤拷 array("persist" => "barbaz")锟斤拷始锟斤拷锟斤拷实锟斤拷锟斤拷使锟矫诧拷同锟斤拷锟斤拷锟捷匡拷锟斤拷锟接★拷

"replicaSet" 选锟斤拷锟斤拷锟斤拷支锟斤拷一锟斤拷锟街凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟角诧拷锟斤拷值锟斤拷

1.0.9 锟斤拷锟斤拷锟� "replicaSet" 选锟筋。
1.0.2

锟睫改癸拷锟斤拷锟斤拷支锟斤拷选锟斤拷锟斤拷锟介。锟斤拷 1.0.2 之前锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟铰诧拷锟斤拷锟斤拷

server

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

connect

锟斤拷选锟斤拷 boolean 锟斤拷锟斤拷指锟斤拷锟剿癸拷锟斤拷锟斤拷锟角凤拷应锟斤拷锟节凤拷锟斤拷前锟斤拷锟接碉拷锟斤拷锟捷库。默锟斤拷为 TRUE锟斤拷

persistent

锟斤拷锟斤拷锟角凤拷应锟斤拷锟角持久的★拷

paired

锟斤拷锟斤拷锟角凤拷应锟斤拷为 paired 模式锟斤拷

锟斤拷锟斤拷

Example #1 MongoClient::__construct() 锟斤拷群锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟绞撅拷锟斤拷锟斤拷锟斤拷锟接憋拷锟斤拷锟斤拷锟斤拷一锟斤拷锟斤拷群锟斤拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥硷拷群锟斤拷 sf1.example.com锟斤拷sf2.example.com 锟斤拷 ny1.example.com锟斤拷 锟斤拷跃锟节碉拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟揭伙拷锟斤拷锟�

<?php

// 锟斤拷锟捷讹拷锟脚分革拷锟侥凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟叫憋拷锟斤拷锟斤拷锟斤拷
// 注锟斤拷锟斤拷锟角诧拷锟斤拷要锟斤拷锟诫集群锟斤拷锟斤拷锟叫筹拷员锟斤拷锟斤拷锟斤拷锟杰癸拷锟斤拷取锟斤拷锟斤拷锟斤拷锟叫憋拷
$m1 = new MongoClient("mongodb://sf2.example.com,ny1.example.com", array("replicaSet" => "myReplSet"));

?>

锟斤拷锟斤拷锟角帮拷锟皆撅拷诘锟斤拷锟斤拷锟绞э拷埽锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷媒诘锟斤拷锟斤拷锟斤拷锟斤拷为锟铰的伙拷跃锟节点,锟斤拷锟皆讹拷锟斤拷锟矫革拷锟斤拷锟接★拷 锟斤拷锟矫伙拷锟街革拷锟� replicaSet锟斤拷锟皆讹拷锟捷达拷锟斤拷转锟斤拷锟睫凤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷

锟斤拷锟斤拷锟斤拷锟斤拷锟接的硷拷群锟斤拷锟斤拷锟叫憋拷锟斤,锟斤拷锟斤拷要锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟竭的★拷

锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷位锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟侥硷拷群锟斤拷锟斤拷锟斤拷锟斤拷锟轿拷锟斤拷锟斤拷锟皆わ拷狻�

锟斤拷锟斤拷锟斤拷诩锟饺猴拷锟斤拷锟较拷渭锟�» 锟斤拷锟斤拷锟侥碉拷锟斤拷

Example #2 锟斤拷锟接碉拷一锟斤拷锟斤拷锟阶斤拷锟街o拷domain socket锟斤拷

锟斤拷 1.0.9+ 锟芥本锟叫o拷锟斤拷锟斤拷锟绞癸拷锟揭伙拷锟� UNIX 锟斤拷锟阶斤拷锟斤拷锟斤拷锟斤拷锟接碉拷一锟斤拷锟斤拷锟截碉拷 MongoDB 实锟斤拷锟斤拷 锟斤拷锟斤拷芑锟斤拷使锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷一锟姐。

锟节版本 1.5.0锟斤拷MongoDB 锟斤拷锟斤拷锟斤拷锟斤拷锟皆讹拷锟斤拷 /tmp/mongodb-<port>.sock 锟较碉拷锟阶斤拷锟街★拷 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷址锟斤拷锟斤拷锟街革拷锟轿伙拷茫锟�

<?php

// MongoDB 锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟节憋拷锟斤拷 20000 锟剿匡拷锟斤拷
$m = new MongoClient("mongodb:///tmp/mongodb-20000.sock");

?>

锟斤拷也锟斤拷锟皆猴拷锟斤拷锟斤拷锟斤拷要锟斤拷锟斤拷锟斤拷锟斤拷希锟�

<?php

// 锟斤拷锟斤拷锟斤拷锟接碉拷锟阶斤拷锟街o拷失锟斤拷时使锟斤拷 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"锟斤拷锟斤拷锟斤拷源锟斤拷锟揭伙拷锟斤拷锟街わ拷锟斤拷锟斤拷锟接o拷

<?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'));

锟斤拷锟斤拷锟斤拷息锟轿硷拷锟斤拷锟街诧拷锟斤拷锟斤拷取选锟斤拷一锟节★拷