programing

문서를 찾을 때 MongoDB가 객체 ID를 반환하지 않도록 방지하는 방법은 무엇입니까?

i4 2023. 7. 10. 21:59
반응형

문서를 찾을 때 MongoDB가 객체 ID를 반환하지 않도록 방지하는 방법은 무엇입니까?

MongoDB에 다음 문서가 있습니다.

{
  "_id" : ObjectId("531221cd960100960116b992"),
  "username : "joe",
  "address" : [
    {
      "zip" : "8000",
      "city" : "Zurich"
    },
    {
      "zip" : "6900",
      "city" : "Lugano"
    }
  ]
}

두 번째 주소를 검색하기 위해 다음 문장을 사용합니다.

db.users.find({ _id: ObjectId("531221cd960100960116b992") }, { addresses: { $slice: [0, 1] } } )

개체 ID도 반환한다는 점을 제외하고는 작동합니다.

{ "addresses" : [ { "zip" : "6900", "city" : "Lugano" } ], "_id" : ObjectId("531221cd960100960116b992") }

MongoDB가 객체 ID를 반환하지 못하게 하려면 어떻게 해야 합니까?다음과 같은 투영을 제공해야 한다는 것을 알고 있습니다._id : 0하지만 위의 표현에서 어디에 넣어야 합니까?여러 번 시도해봤는데,하지만 성공하지 못했습니다.

감사해요.

통과하다{'_id': False}에 대한 매개 변수로서.find()

db.users.find({ _id: ObjectId("531221cd960100960116b992")}, { addresses: { $slice: [0, 1] } ,'_id': False} )

이것은 @hanleyhansen의 대답과 정확히 동일하지만, 0을 다음과 같은 거짓과 바꿀 수 있다는 것을 알려드립니다.

db.users.find(
  { _id: ObjectId("531221cd960100960116b992")},
  { addresses: { $slice: [0, 1] } ,'_id': 0}
)

이 코드를 사용합니다.

 db.yourCollectionName.find({},{_id:0})

반환되는 데이터를 제한하기 위해 문자열 값을 사용하는 모든 사용자 - 그냥 통과-_id다음 옵션 중 하나로 사용할 수 있습니다.

User.find(
    { name: "John Doe" },
    "name photo bio -_id", // <-- "-_id"
    { limit: 25 },
    function (err, users) {
      return res.status(200).send({
        success: true,
        users,
      });
    }
  );

언급URL : https://stackoverflow.com/questions/22121145/how-to-prevent-mongodb-from-returning-the-object-id-when-finding-a-document

반응형