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를 쿼리하는 방법에 대한 관련 기사를 주목하세요!