서비스 용으로 배열 요소 [1]을 제거하고 비용을 청구하고 싶습니다. 문제는 언제든지 다른 요소
이 동일한 값을 포함하므로 모든 요소가 제거된다는 것입니다. [1] - [8]과 [10] - [15]. 나는 괄호 안에 요소 식별자를 지정하여이 제한을 제한하려고 시도했으나 작동하지 않습니다.
중복 값이없는 경우 다음 코드가 완벽하게 작동합니다. [1]과 [9]는 문제없이 제거 할 수 있습니다.
$forward = $_POST['id'];
$conn = new Mongo('localhost');
$db = $conn->pianos;
$collection = $db->names;
$criteria = array('_id' => $forward,);
// Find single document by ID Variable
$obj = $collection->findOne($criteria);
// define variables for Array objects
$service = $obj['service'] [$i];
$charge = $obj['charge'] [$i];
$serv = array('service' => $service, 'charge' => $charge);
$upsert = true;
$collection->update($obj, array('$pull' => $serv) ,array("upsert" => $upsert));
PhpMoAdmin이 제공 한 문서의 구조는 다음과 같습니다.
[$_id] => MongoID Object (
[$id] => 4e3a8a457bfb8b2817000002
)
[fname] => Billy Bob
[lname] => Thornton
[service] => Array (
[0] => Tune 2 pianos
[1] => Tuned
[2] => Tuned
[3] => Tuned
[4] => Tuned
[5] => Tuned
[6] => Tuned
[7] => Tuned
[8] => Tuned
[9] => Called
[10] => Tuned
[11] => Tuned
[12] => Tuned
[13] => Tuned
[14] => Tuned
[15] => Tuned
)
[charged] => Array (
[0] => 100.00
[1] => 50.00
[2] => 50.00
[3] => 50.00
[4] => 50.00
[5] => 50.00
[6] => 50.00
[7] => 50.00
[8] => 50.00
[9] => 0.00
[10] => 50.00
[11] => 50.00
[12] => 50.00
[13] => 50.00
[14] => 50.00
[15] => 50.00
)