Comments (5)
I found the solution. use the "typeMap" option.
<?php
// This path should point to Composer's autoloader
require_once __DIR__ . "/vendor/autoload.php";
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");
$options = array(
'typeMap' => array(
'root' => 'array',
'document' => 'array',
),
);
$collection = new MongoDB\Collection($manager, "db.abc", $options);
$sunnyvale = $collection->findOne(array("id" => 94086));
var_dump($sunnyvale);
?>
from mongo-php-library.
the method "find" return is object. and "typeMap" option does not work.
from mongo-php-library.
findOne has always returned an Object while find returns an array. I believe it has always been like this. Otherwise use find with limit 1 to get an array
from mongo-php-library.
As of 1.0.0-beta2, find()
and aggregate()
also take a typeMap
option, which is applied to the returned cursor. Alternatively, you could call setTypeMap()
yourself before iterating.
Furthermore, the Client, Database, and Collection objects can also be constructed with a typeMap
option, which will be applied by default to relevant operations within each class (as we already do with write concerns and read preferences). The option is also inherited by selected "children" (e.g. the Database returned from Client::selectDatabase()
will inherit the Client's options).
As noted in the 1.0.0-beta2 release notes, we intend to have a more user-friendly default type map, so documents and arrays may be returned as ArrayObjects instead of stdClass and array, respectively. This will allow us to ensure we preserve their BSON types when going back to the database (i.e. object data can be cast back to stdClass and arrays can be filtered through array_values()
to be numerically reindexed). This is being tracked in #78 and PHPLIB-74.
from mongo-php-library.
#78 is merged, so we're now returning ArrayObject instances for BSON document and array types, each of which handle BSON serialization for documents and arrays on the way back into the database. With this change, you can use array access on both types (e.g. $result['field']
or $array[2]
) and you should still be able to use property syntax on documents $result->field
, provided some BC for people that have now gotten used to working with stdClass instances.
Expect a 1.0.0 release with these new defaults soon.
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
- Question about fieldPaths (feature request?) 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.