>php教程 >PHP开发 >Mongodb에서 문서 ID를 쿼리하는 PHP 라이브러리 메서드

Mongodb에서 문서 ID를 쿼리하는 PHP 라이브러리 메서드

高洛峰
高洛峰원래의
2016-12-23 12:58:061447검색

IBM에서 저의 새로운 직업은 개발 지원 직원입니다. 이는 내가 대부분의 시간을 데이터베이스 작업에 소비한다는 것을 의미합니다. 내 작업 흐름에서는 문서 데이터베이스인 MongoDB를 사용하는 데 시간을 보냈습니다. 그런데 ID별로 기록을 검색하는 데 몇 가지 문제가 발생했습니다. 아래 코드는 최종 버전이므로 나중에 비슷한 문제가 발생하면 직접 인용할 수 있습니다. 혹시 필요하신 분들은 아래 내용이 도움이 되셨으면 좋겠습니다.

MongoDB 및 ID

컬렉션에 데이터를 삽입할 때 _id 필드를 설정하지 않습니다. 이 필드가 비어 있으면 MongoDB가 자동으로 ID를 생성합니다. 사용하는 것이 나에게 매우 좋습니다. 그러나 MongoDB에서 생성된 식별자를 사용할 때 문제가 발생합니다.

db.posts.find()를 사용하여 내 데이터(내 컬렉션을 게시물이라고 함)를 검색하는 경우 데이터는 다음과 같습니다.

{ "_id " : ObjectId("575038831661d710f04111c1"), ...

따라서 ID를 사용하여 데이터를 검색하려면 ID에 액세스하기 위한 ObjectId 메서드도 포함해야 합니다.

PHP 라이브러리 사용하기

이 작업을 PHP를 사용했을 때, 새로운 PHP 라이브러리를 사용할 때 적합한 예제를 찾지 못했습니다(단, 이 클래스 라이브러리는 정말 좋은 도서관입니다). 이전 버전에서는 이 라이브러리가 MongoID라는 클래스를 사용하여 구현되었습니다. 그러나 나는 그것이 내가 원하는 것이 아니라는 것을 알고 있습니다. 그러나 실제로 이 수업을 통해 문서를 검사할 수 있습니다. 따라서 이전 코드에서만 예제를 찾을 수 있는 경우 이 방법을 아는 것이 유용합니다.
이 PHP 라이브러리를 사용하여 MongoDB에 ID를 전달하려면 MongoDBBSONObjectID 인스턴스를 생성해야 합니다. 다음 예에서는 문서 ID로 블로그의 문서를 검색합니다.

$post = $posts->findOne(["_id" => new MongoDBBSONObjectID($id)]);

그럼 가겠습니다 이 레코드를 업데이트하려면 - 이 블로그 게시물에는 이 레코드에 삽입된 댓글도 포함되어 있으므로 _id,

$result = $posts->updateOne(
   ["_id" => new MongoDB\BSON\ObjectID($id)],
   ['$push' => [
"comments" => $new_comment_data
      ]
]);

을 사용하여 이 레코드의 댓글 컬렉션에 배열을 추가하세요.

마지막으로, 이 글이 모든 분들께 도움이 되기를 바랍니다. 이 사이트를 지원해 주신 모든 분들께 감사드립니다!

더 많은 PHP 라이브러리를 보려면 PHP 중국어 웹사이트에서 Mongodb에서 문서 ID를 쿼리하는 방법에 대한 관련 기사를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.