(PECL mongo >=0.9.0)
MongoCollection::insert — �����ĵ���������
���͵����ݿ�������ַ��������� UTF-8 �ġ�������ַ������� UTF-8�������׳� MongoException �쳣�� Ҫ���루���߲�ѯ��һ���� UTF-8 ���ַ�������ʹ�� MongoBinData��
a
һ�������������ʹ�õ���һ�������������� protected �� private �����ԡ�
Note:
������������� _id �������ԣ� ���ᴴ��һ���µ� MongoId ʵ��������ֵ������ ����������Ϊ����ζ�Ų����Ǵ����õġ�
options
�����ѡ�
"fsync"
Boolean, defaults to FALSE
. Forces the insert to be synced to disk before returning success. If TRUE
, an acknowledged insert is implied and will override setting w to 0.
"j"
Boolean, defaults to FALSE
. Forces the write operation to block until it is synced to the journal on disk. If TRUE
, an acknowledged write is implied and this option will override setting "w" to 0.
Note: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.
"w"
See WriteConcerns. The default value for MongoClient is 1.
"wtimeout"
Deprecated alias for "wTimeoutMS".
"safe"
Deprecated. Please use the WriteConcern w option.
"timeout"
Integer, defaults to MongoCursor::$timeout. If "safe" is set, this sets how long (in milliseconds) for the client to wait for a database response. If the database does not respond within the timeout period, a MongoCursorTimeoutException will be thrown.
��������� "w" ѡ����᷵�ذ�������״̬�����顣
�����᷵��һ�� TRUE
�������鲻�ǿյģ������齫���׳� MongoException ����
���������һ�� array�����������¼���
ok
��Ӧ�ü������� 1������ last_error ������ִ���
err
�������ֶβ��� null��˵���ղŵIJ��������˴��� ���������ֶΣ���������һ���ַ����������������ֵĴ�����Ϣ��
code
���������һ�����ݿ������Ӧ�Ĵ�����ᴫ���ͻ��ˡ�
errmsg
������ݿ���������˴�������������ֶΡ�ͬʱ ok Ҳ���� 0. ���磬������ w ���ҳ�ʱ�ˣ�errmsg ������ "timed out waiting for slaves" ���� ok �� 0�� �������������ֶΣ������Ƿ����Ĵ�����ַ���������
n
������IJ����Dz��롢���»�ɾ�������᷵����Ӱ��Ķ������������ڲ�����������ֵ���� 0��
wtimeout
�ȴ�����ֱ����ʱ��ʱ�䡣
waited
�ڳ�ʱǰ��Ҫ�ȴ�������á�
wtime
��������� w ���Ҳ����ɹ��ˣ��ȵ����Ƶ� w ̨��������ʱ�䡣
upserted
���������һ�� upsert������ֶν�������¼�¼�� _id�� ���� upsert�������Ǹ��ֶλ��� updatedExisting ���ᱻ���������Ƿ�����һ������
updatedExisting
���һ�� upsert ������һ�����ڵ�Ԫ�أ�����ֶν����� true�� ���� upsert������������ֶ� ���� upserted ���ᱻ���������Ƿ����˴���
���������ĵ��ǿյģ����߰����㳤�ȵļ��������׳� MongoException�� ���Բ������ protected �� private ���ԵĶ��ᵼ���㳤�ȼ���zero-length key���Ĵ���
Throws MongoCursorException if the "w" option is set and the write fails.
Throws MongoCursorTimeoutException if the "w" option is set to a value greater than one and the operation takes longer than MongoCursor::$timeout milliseconds to complete. This does not kill the operation on the server, it is a client-side timeout. The operation in MongoCollection::$wtimeout is milliseconds.
�汾 | ˵�� |
---|---|
1.3.0 |
options �������ٽ��� boolean ����ʶһ��ȷ�ϵ�д�롣
���ڣ������ͨ��
array('w' => 1) ���ã�
MongoClient Ĭ�ϵ���Ϊ��
|
1.2.0 | ������ "timeout" ѡ� |
1.0.11 | ��������� "safe"������ "not master" ����ʱ�Ͽ����ӡ� |
1.0.9 |
"safe" ѡ����� integer ֵ��֮ǰֻ���� boolean ֵ�� ���� "fsync" ѡ� ��������� "safe" ѡ��������ijɰ���������Ϣ�� array�� ����֮ǰһ������ boolean�� |
1.0.5 | �ĵڶ�������Ϊѡ�����顣�� 1.0.5 ֮ǰ���ڶ��������� boolean��ָʾ "safe" ѡ� |
1.0.1 | ��������� "safe" ѡ��Ҳ���ʧ���ˣ������׳� MongoCursorException�� |
Example #1 MongoCollection::insert() _id ����
���û�� _id��������һ����������ĵ��С� ���ڲ�������ķ�ʽ���ڵ��ô���ʱ������������Ч _id��
<?php
$m = new MongoClient();
$collection = $m->selectCollection('test', 'phpmanual');
// ���ʹ�õ��� array ������������ɹ����� _id
$collection->insert(array('x' => 1));
// ͨ���� array �ı����������� _id
$a = array('x' => 2);
$collection->insert($a);
var_dump($a);
// ͨ�������õ� array ������ _id
$b = array('x' => 3);
$ref = &$b;
$collection->insert($ref);
var_dump($ref);
// û���ڰ����ĺ����д��� copy-on-write ʱ _id ��Ч
function insert_no_cow($collection, $document)
{
$collection->insert($document);
}
$c = array('x' => 4);
insert_no_cow($collection, $c);
var_dump($c);
// �ڰ����ĺ����д��� copy-on-write ʱ _id ��Ч
function insert_cow($collection, $document)
{
$document['y'] = 1;
$collection->insert($document);
}
$d = array('x' => 5);
insert_cow($collection, $d);
var_dump($d);
?>
�������̵���������ڣ�
array(2) { ["x"]=> int(2) ["_id"]=> object(MongoId)#4 (0) { } } array(1) { ["x"]=> int(3) } array(2) { ["x"]=> int(4) ["_id"]=> object(MongoId)#5 (0) { } } array(1) { ["x"]=> int(5) }
Example #2 MongoCollection::insert() ȷ��д�������
���������ʾ�������� w
��������������ͬ _id ��Ԫ��ʱ�������׳� MongoCursorException �����ӡ�
<?php
$person = array("name" => "Joe", "age" => 20);
$collection->insert($person);
// ���� $person ����һ�� _id �ֶΣ����������ٴ�
// ��������ʱ����õ�һ���쳣
try {
$collection->insert($person, array("w" => 1));
} catch(MongoCursorException $e) {
echo "Can't save the same person twice!\n";
}
?>