Mongoose Populate는 아무것도하지 않습니다.

예술의

저는 Node.js, 특히 Mongoose를 처음 사용합니다. 튜토리얼을 통해 배우고 있습니다. 사용자와 건물을 표시하는 훌륭하고 간단한 코드를 작성했지만 populate () 함수는 단순히 Object의 _id를 표시합니다.

내 모델 :

(...) // omitted code

var userSchema = new Schema({
  login: {
    type: String,
    required: 'Login is required', 
    unique: true,
    index: true,
    uniqueCaseInsensitive: true
  },
    (...) // omitted code
  ,
  building: {
    type: Schema.Types.ObjectId,
    ref: 'Building'
  }
  createdAt: {
    type: Date,
    default: Date.now
  }
});

var buildingSchema = new Schema({
  address: {
    type: addressSchema,
    index: true,
    unique: true
  },
  planPath: String,
  createdAt: {
    type: Date,
    default: Date.now
  }
});

module.exports = mongoose.model('Building', buildingSchema);
module.exports = mongoose.model('User', userSchema);

내 경로 :

  app.route('/api/v1/users/:userId')
    .get(parkingshare.readUser);

  app.route('/api/v1/buildings/:buildingId')
    .get(parkingshare.readBuilding);

내 컨트롤러 :

exports.readUser = function(req, res) {
  user.findById(req.params.userId, function(err, user) {
    if (err)
      res.send(err);
    res.json(user.populate('building'));
  });
};

exports.readBuilding = function(req, res) {
  building.findById(req.params.buildingId, function(err, building) {
    if (err)
      res.send(err);
    res.json(building);
  });
};

다음 명령으로 데이터를 삽입했습니다.

curl --header "Content-Type: application/json"   --request POST   --data '{"address" : {"number":"01", "street":"test", "postCode":"01010", "city":"test"}, "planPath":""}' http://127.0.0.1:3001/api/v1/buildings

결과 :

{
    "_id": "6027c85fce48810533194d08",
    "address": {
        "number": 1,
        "street": "test",
        "postCode": "01010",
        "city": "test"
    },
    "planPath": "",
    "createdAt": "2021-02-13T12:38:55.677Z",
    "__v": 0
}
curl --header "Content-Type: application/json"   --request POST   --data '{"login":"admin","password":"admin","lastName":"","firstName":"test","building": {"_id": "6027c85fce48810533194d08"},"parkLocations":[]}'   http://127.0.0.1:3001/api/v1/users

결과 :

{
    "_id": "6027cab9ce48810533194d0f",
    "login": "admin",
    "password": "admin",
    "lastName": "",
    "firstName": "test",
    "building": "6027c85fce48810533194d08",
    "parkLocations": [],
    "buildingAdmin": true,
    "superAdmin": true,
    "createdAt": "2021-02-13T12:42:40.908Z",
    "__v": 0
}

이제 내 브라우저를 통해 populate ( 'building')있는 readUser 메서드를 통해 사용자를 얻으려고 할 때 :

json 결과

여기서 채우기 ()가 작동하지 않는 이유는 무엇입니까? 혼란 스럽습니다.

모하마드 야세르 아마디

단지 시도:

exports.readUser = async function (req, res) {
  try {
    let result = await user.findById(req.params.userId).populate("building");
    res.json({ result });
  } catch (err) {
    res.send(err);
  }
};

또는

exports.readUser = function(req, res) {
    user.findById(req.params.userId).populate('building').exec(function (err, result) {
        if (err)  res.send(err);
        res.json({ result });
      })
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Mongoose 참조로 찾기는 아무것도 반환하지 않습니다.

분류에서Dev

Mongoose 업데이트 여러 문서는 아무것도 업데이트하지 않습니다.

분류에서Dev

Mongoose, 검색 결과 저장은 아무 작업도 수행하지 않는 것 같습니다.

분류에서Dev

mongoose에서 찾기는 스키마에 존재하지 않는 필드가있을 때 아무것도 반환하지 않습니다.

분류에서Dev

Nodejs : passport-local-mongoose의 .plugin (...)은 아무것도하지 않습니다.

분류에서Dev

Scala HashMap # contains는 아무것도 기대하지 않습니다.

분류에서Dev

Django select_related는 아무것도하지 않습니다.

분류에서Dev

Plotly Library는 아무것도 표시하지 않습니다.

분류에서Dev

미디어 소스는 아무것도하지 않습니다

분류에서Dev

Laravel 관계는 아무것도 반환하지 않습니다.

분류에서Dev

React 함수는 아무것도 반환하지 않습니다.

분류에서Dev

npm start는 Windows에서 아무것도하지 않습니다.

분류에서Dev

Console.SetError (myTextWriter)는 아무것도하지 않습니다.

분류에서Dev

memcpy는 아무것도하지 않습니다

분류에서Dev

beautifulsoup4는 아무것도 인쇄하지 않습니다.

분류에서Dev

django makemessages는 아무것도하지 않습니다.

분류에서Dev

Bash Script는 아무것도하지 않습니다.

분류에서Dev

jQuery ajax 오류는 아무것도하지 않습니다.

분류에서Dev

jQuery ajax 오류는 아무것도하지 않습니다.

분류에서Dev

코드는 아무것도 반환하지 않습니다.

분류에서Dev

PreparedStatement는 아무것도 변경하지 않습니다.

분류에서Dev

gem install rails는 아무것도하지 않습니다

분류에서Dev

nginx는 아무것도 기록하지 않습니다.

분류에서Dev

grep * gcc *는 아무것도 일치하지 않습니다

분류에서Dev

Phalcon Debug는 아무것도하지 않습니다.

분류에서Dev

GetResource는 아무것도 표시하지 않습니다.

분류에서Dev

htmlentities ()는 아무것도 반환하지 않습니다.

분류에서Dev

Laravel 뷰는 아무것도 출력하지 않습니다.

분류에서Dev

pushViewController는 호출 할 때 아무것도하지 않습니다.

Related 관련 기사

  1. 1

    Mongoose 참조로 찾기는 아무것도 반환하지 않습니다.

  2. 2

    Mongoose 업데이트 여러 문서는 아무것도 업데이트하지 않습니다.

  3. 3

    Mongoose, 검색 결과 저장은 아무 작업도 수행하지 않는 것 같습니다.

  4. 4

    mongoose에서 찾기는 스키마에 존재하지 않는 필드가있을 때 아무것도 반환하지 않습니다.

  5. 5

    Nodejs : passport-local-mongoose의 .plugin (...)은 아무것도하지 않습니다.

  6. 6

    Scala HashMap # contains는 아무것도 기대하지 않습니다.

  7. 7

    Django select_related는 아무것도하지 않습니다.

  8. 8

    Plotly Library는 아무것도 표시하지 않습니다.

  9. 9

    미디어 소스는 아무것도하지 않습니다

  10. 10

    Laravel 관계는 아무것도 반환하지 않습니다.

  11. 11

    React 함수는 아무것도 반환하지 않습니다.

  12. 12

    npm start는 Windows에서 아무것도하지 않습니다.

  13. 13

    Console.SetError (myTextWriter)는 아무것도하지 않습니다.

  14. 14

    memcpy는 아무것도하지 않습니다

  15. 15

    beautifulsoup4는 아무것도 인쇄하지 않습니다.

  16. 16

    django makemessages는 아무것도하지 않습니다.

  17. 17

    Bash Script는 아무것도하지 않습니다.

  18. 18

    jQuery ajax 오류는 아무것도하지 않습니다.

  19. 19

    jQuery ajax 오류는 아무것도하지 않습니다.

  20. 20

    코드는 아무것도 반환하지 않습니다.

  21. 21

    PreparedStatement는 아무것도 변경하지 않습니다.

  22. 22

    gem install rails는 아무것도하지 않습니다

  23. 23

    nginx는 아무것도 기록하지 않습니다.

  24. 24

    grep * gcc *는 아무것도 일치하지 않습니다

  25. 25

    Phalcon Debug는 아무것도하지 않습니다.

  26. 26

    GetResource는 아무것도 표시하지 않습니다.

  27. 27

    htmlentities ()는 아무것도 반환하지 않습니다.

  28. 28

    Laravel 뷰는 아무것도 출력하지 않습니다.

  29. 29

    pushViewController는 호출 할 때 아무것도하지 않습니다.

뜨겁다태그

보관