Comments (7)
Thanks for the feedback! We've actually been tracking this in PHPLIB-74 and hope to have it resolved before the 1.0.0 release.
Supporting a type map option at the Client, Database, and Collection level is definitely feasible, and we'd also like to provide a class implementing ArrayAccess to use by default (instead of stdClass). We definitely don't want to encourage regular PHP arrays, since those are lossy (we have no way of knowing if [0 => 'foo']
is really an array or an object when converting back to BSON); however, you'd certainly be allowed to specify an array in your own type map.
from mongo-php-library.
Thank you, that's great news. The class implementing ArrayAccess would be the perfect transition. Also, I'm not sure if it is a type map feature, but is it possible to allow a custom class for ObjectID to implement the JsonSerializable interface or add a public property to the class ObjectID (it used to be $id in the old driver) so the json_encode function does not return an empty object.
from mongo-php-library.
@vlechemin You can use BSON\toJSON() for that
$oid = new MongoDB\BSON\ObjectID();
$bson = MongoDB\BSON\fromPHP(array("oid" => $oid));
$json = MongoDB\BSON\toJSON($bson);
var_dump($json);
string(51) "{ "oid" : { "$oid" : "56213136bd21b96081103f11" } }"
I thought we had a ticket for going from PHP to (e)JSON but I cannot find it at the moment.
The intention was that you should be able to encode the BSON objects (such as ObjectID) using json_encode().
Its not going to make it into 1.0.0 though
from mongo-php-library.
See https://jira.mongodb.org/browse/PHPC-459
from mongo-php-library.
Thanks for the temporary solution and the ticket, I will be waiting for 1.1
from mongo-php-library.
On a related note, 1.0.0-beta2 of the library includes a new top-level typeMap
option to centrally control BSON unserialization throughout the library.
from mongo-php-library.
#78 has now been merged (and PHPLIB-74 resolved), which means ArrayObject instances are being returned by default for BSON arrays and documents. We should have this out in a 1.0.0 release shortly.
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
- $unset not properly work on multiple field? HOT 1
- Docs: missing `]` character in database->aggregate documentation 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.