Comments (6)
If you're not using update operators, you're not updating a document but replacing it. Thus, use the replaceOne
method instead of updateOne
.
from mongo-php-library.
That seems to do the trick.
The code is now:
$result = $this->_collection->replaceOne(["_id" => $this->key($id, $group)],
["_id" => $this->key($id, $group), "group" => $group, "data" => $data, "timeStamp" => time() + $this->options['lifetime']],
['upsert' => true]);
Thanks!
from mongo-php-library.
I've only ever used upsert with the update
function. Like my understanding is "update, but insert if not exists". So presumably the upsert option is ignored for inserts.
Also I think errors are handled as exceptions now (UpdateResult
has no API for getting error messages). If you try/catch and check the exception's error message, I'd bet a nickel that your insertOne
is failing because you already have a document with that ID. So yeah use updateOne
π
from mongo-php-library.
I do use the try/catch construction. The error message is: BulkWrite error.
So I moved to the updateOne construction and now the message is: First key in $update argument is not an update operator.
The code is:
$result = $this->_collection->updateOne(array("_id" => $this->key($id, $group)),
array("_id" => $this->key($id, $group), "group" => $group, "data" => $data, "timeStamp" => time() + $this->options['lifetime']),
['upsert' => true]);
What am I doing wrong. Can you perhaps give me some example code that works, that would really help π
from mongo-php-library.
@alcaeus provides the right answer. I'm marking this as closed.
The library's documentation at http://mongodb.github.io/mongo-php-library/classes/collection/#crud-operations says "CRUD is an acronym for Create, Read, Update, and Delete. The Collection class implements MongoDBβs cross-driverCRUD specification, which defines a common API for collection-level read and write methods." It links to https://github.com/mongodb/specifications/blob/master/source/crud/crud.rst#update-vs-replace-validation, which discusses the differences between update and replace.
I do think, that the library's documentation should be improved on this. It's in the repository at https://github.com/mongodb/mongo-php-library/blob/master/docs/classes/collection.md#crud-operations if you want to give this a shot yourself.
from mongo-php-library.
Created PHPLIB-178 to track this task.
from mongo-php-library.
Related Issues (20)
- PHP+MongoDB: "Return value must be of type MongoDB\Driver\Server, null returned" HOT 3
- Can we drop `jean85/pretty-package-versions:1.2`? HOT 4
- Decision about `mongo-orchestration` folder and `Makefile` HOT 3
- [Documentation] Syntax highlighting in the method reference is not ideal HOT 1
- A never-ending query after upgrade to MongoDB 6.0.3 HOT 6
- Memory leak on updateOne in the loop HOT 1
- Deprecated: Return type of MongoDB\Model\BSONDocument::bsonSerialize() HOT 2
- The StreamWrapper class is currently unusable without the bucket HOT 4
- Performance issue with PHP 8.2 HOT 2
- Extract mongodb-1.6.2.tgz error HOT 1
- MacOs M1 Cannot connect to Atlas After upgrade driver HOT 7
- This is a test
- get_debug_type() only available for PHP 8.0 and up HOT 2
- How to execute refreshSessions HOT 1
- Can't connect. To mongo db remote in can bost HOT 1
- Non blocking io HOT 1
- $where is not allowed in this context HOT 2
- TLS connection with mongo cluster failed (while single host works) HOT 2
- getting result from mongodb with toArray() HOT 3
- Getting the error in driver version 1.14 HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mongo-php-library.