Hướng dẫn objectid to string php - objectid thành chuỗi php

(MongoDB> = 1.0.0)

MongoDB \ BSON \ ObjectID :: __ ToString - Trả về biểu diễn hexidecimal của ObjectID nàyReturns the hexidecimal representation of this ObjectId

Sự mô tả

FinalPublicMongoDB \ BSON \ ObjectID :: __ toString (): Chuỗi public MongoDB\BSON\ObjectId::__toString(): string

Thông số

Chức năng này không có tham số.

Trả về giá trị

Trả về đại diện hexidecimal của objectid này.

Ví dụ

Ví dụ #1 MongoDB \ BSON \ ObjectID :: __ TOSTRING () Ví dụMongoDB\BSON\ObjectId::__toString() example

var_dump

((string) new MongoDB\BSON\ObjectId());
var_dump((string) new MongoDB\BSON\ObjectId('000000000000000000000001'));?>

Ví dụ trên sẽ xuất ra một cái gì đó tương tự như:

string(24) "56731b49da14d8747d701211"
string(24) "000000000000000000000001"

Jared C. ¶

6 năm trước

I found I had to manually call the __toString method when I was trying to populate an associative array of mongoguid => stringValue:

        $filter = [];
        $options = [];
        $this->propertyMap = [];
        try {
            $query = new \MongoDB\Driver\Query($filter, $options);
            $cursor = $this->mongo->executeQuery('MyDbName.MyColectionName', $query);
        } catch (Exception $e) {
            echo "Mongo Query failure pulling the collection" . PHP_EOL;
            echo($e->getMessage());
            die("aborting");
        }
        foreach ($cursor as $property) {
            //$this->propertyMap[$property->{_id}->__toString()] = $property->name;
            $this->propertyMap[$property->name] = $property->{_id}->__toString();
        }

$cursor = $collection->find();
foreach($cursor as $doc) {
   // do something....
}
0

$cursor = $collection->find();
foreach($cursor as $doc) {
   // do something....
}
1

Xin chào tất cả mọi người tôi sử dụng phương thức mongDB find () như thế này:

$cursor = $collection->find();
foreach($cursor as $doc) {
   // do something....
}

Không sao đâu nhưng thuộc tính _id của tôi được tự động phát hành vì vậy khi tôi sử dụng mã trên $ doc [_id] là đối tượng nhưng tôi cần một chuỗi.

Làm thế nào tôi có thể chuyển đổi nó thành chuỗi tự động. Không như thế này:

foreach($cursor as $doc) {      
    $doc['_id'] = (string)$doc['_id'];
}

Đã hỏi ngày 12 tháng 11 năm 2011 lúc 18:17Nov 12, 2011 at 18:17

Hướng dẫn objectid to string php - objectid thành chuỗi php

3

Để tự động chuyển đổi ObjectID thành chuỗi từ bất kỳ kết quả nào từ trình điều khiển MongoDB, tôi sử dụng chức năng này:

function convertMongoIds(array &$array){
    foreach ($array as &$element){
        if (is_array($element)){
            convertMongoIds($element);
        }else if (is_object($element) && get_class($element) == "MongoId"){
            $element = (string) $element;
        }
    }
}

Đã trả lời ngày 21 tháng 4 năm 2013 lúc 12:21Apr 21, 2013 at 12:21

Hướng dẫn objectid to string php - objectid thành chuỗi php

Luttkensluttkensluttkens

1.2228 huy hiệu bạc16 huy hiệu đồng8 silver badges16 bronze badges

`$result = $collection->findOne([
     '_id' => new \MongoDB\BSON\ObjectId("5a59b11b3ffd3aec4a23cd2c")
]);


var_dump((string)$result->_id, $result->_id->__toString());`

Cả hai đều hoạt động trong phiên bản 3.6.

tài liệu tham khảo

Hướng dẫn objectid to string php - objectid thành chuỗi php

Đã trả lời ngày 2 tháng 3 năm 2018 lúc 10:27Mar 2, 2018 at 10:27

Xử lý Mongoid đúng cách bằng

$cursor = $collection->find();
foreach($cursor as $doc) {
   // do something....
}
2 từng là một lỗi trong trình điều khiển PHP. Nó nên được sửa từ v1.0.11.

Đã trả lời ngày 12 tháng 11 năm 2011 lúc 20:02Nov 12, 2011 at 20:02

LychalychaLycha

9.6893 huy hiệu vàng34 Huy hiệu bạc43 Huy hiệu đồng3 gold badges34 silver badges43 bronze badges

0