GithubHelp home page GithubHelp logo

Comments (9)

jmikola avatar jmikola commented on June 20, 2024

Try replacing the comma after '$in' with a =>.

$collection->deleteMany(['_id' => ['$in' => [1, 2, 3, 4, 5]]]);

from mongo-php-library.

acim avatar acim commented on June 20, 2024

Sorry, I wrote it like you say actually, comma above is just a typo. So, this is still not working :(

$collection->deleteMany(['_id' => ['$in' => [1, 2, 3, 4, 5]]]);

from mongo-php-library.

jmikola avatar jmikola commented on June 20, 2024

I can't reproduce this with the following script:

<?php

require 'vendor/autoload.php';

$collection = (new MongoDB\Client)->test->foo;
$collection->drop();

$result = $collection->insertMany([
    ['_id' => 1],
    ['_id' => 2],
    ['_id' => 3],
    ['_id' => 4],
    ['_id' => 5],
]);

printf("Inserted %d documents\n", $result->getInsertedCount());
echo "Dumping documents in collection:\n";

foreach ($collection->find() as $document) {
    echo MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($document)), "\n";
}

$result = $collection->deleteMany(['_id' => ['$in' => [1, 2, 4, 5]]]);

printf("Deleted %d documents\n", $result->getDeletedCount());
echo "Dumping documents in collection:\n";

foreach ($collection->find() as $document) {
    echo MongoDB\BSON\toJSON(MongoDB\BSON\fromPHP($document)), "\n";
}

Output for me:

$ php foo.php 
Inserted 5 documents
Dumping documents in collection:
{ "_id" : 1 }
{ "_id" : 2 }
{ "_id" : 3 }
{ "_id" : 4 }
{ "_id" : 5 }
Deleted 4 documents
Dumping documents in collection:
{ "_id" : 3 }

Have you tried running the same query in the shell and/or inspecting the types of the _id fields? For querying purposes, the server should consider like numeric values of different types equivalent, so I don't believe there would be any issue if IDs were a mixture of floats and 32- or 64-bit integers; however, it wouldn't hurt to inspect the types in the shell or with bsondump (and its debug output format).

from mongo-php-library.

liufee avatar liufee commented on June 20, 2024

please help me how to delete a record by _id?i do it just like $collection->->deleteOne(['_id'=>'56a5ec134242b50338006ee2']),but it doesn't work.

from mongo-php-library.

acim avatar acim commented on June 20, 2024

@jmikola Yes, this is working. It seems I didn't have some documents within the collection before deletion. I actually this is working as a query, but obviously not. So I have to do find before deleteMany. Thank you very much.

from mongo-php-library.

jmikola avatar jmikola commented on June 20, 2024

please help me how to delete a record by _id?i do it just like $collection->->deleteOne(['_id'=>'56a5ec134242b50338006ee2']),but it doesn't work.

@liufee: I assume "56a5ec134242b50338006ee2" in your case corresponds to an ObjectID. In that case, you should be using the MongoDB\BSON\ObjectID class in your criteria, which you can construct from a 24-character, hexadecimal string. The query you were running is attempting to match _id against a string type and value, which it is not.

In the future, please open a new issue instead of replying onto an existing issue, especially since your question was not a duplicate of the OP's issue.

from mongo-php-library.

liufee avatar liufee commented on June 20, 2024

got it thank you

from mongo-php-library.

rathipradha avatar rathipradha commented on June 20, 2024

deletemany is not function (ERROR)

rest.deleteMany({'_id': {$in:[ObjectId("5ae4c2aa3bf923ae6cda6a67"),ObjectId("5b068e30b901e0547455fe60"),ObjectId("5b0bd3431f135383c812d0e5")]} }), function (err,doc) {

})

mongod --->db version v4.2.3

from mongo-php-library.

jmikola avatar jmikola commented on June 20, 2024

The above comment is a duplicate of #745.

from mongo-php-library.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.