MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm cách nào để lấy tên từ id trong mongoose?

Bạn cần điền như thế này:(loại trừ mật khẩu của người dùng cũng là một ý kiến ​​hay)

 Question.find({})
    .populate("user", "-password")
    .populate("answered.user", "-password");

Ngoài ra, tôi có một vài gợi ý mã:

Chúng tôi thường sử dụng chữ cái đầu tiên được viết hoa và tên số ít cho các mô hình, chẳng hạn như Người dùng.

user.js

const mongoose = require("mongoose");

const UserSchema = new mongoose.Schema({
  name: {
    type: String,
    required: true
  },
  email: {
    type: String,
    required: true,
    unique: true
  },
  password: {
    type: String,
    required: true
  },
  date: {
    type: Date,
    default: Date.now
  }
});

const User = mongoose.model("User", UserSchema);

module.exports = User;

question.js

const mongoose = require("mongoose");

const QuestionSchema = new mongoose.Schema({
  user: {
    type: mongoose.Schema.Types.ObjectId,
    ref: "User"
  },
  question: {
    type: String
  },
  name: {
    type: String
  },
  answered: [
    {
      user: {
        type: mongoose.Schema.Types.ObjectId,
        ref: "User"
      }
    }
  ]
});

const Question = mongoose.model("Question", QuestionSchema);

module.exports = Question;

Và bạn có thể sử dụng truy vấn sau để điền người dùng:

const Question = require("../models/question");

router.get("/question", async (req, res) => {
  const questions = await Question.find({})
    .populate("user", "-password")
    .populate("answered.user", "-password");

  res.send(questions);
});

Đây là kết quả mẫu:

[
    {
        "_id": "5dc12a6aa875cd0ca8b871eb",
        "user": {
            "_id": "5dc129eda875cd0ca8b871e8",
            "name": "user 1",
            "email": "[email protected]",
            "date": "2019-11-05T07:51:09.625Z",
            "__v": 0
        },
        "question": "question 1",
        "name": "question 1 name",
        "answered": [
            {
                "_id": "5dc12a6aa875cd0ca8b871ed",
                "user": {
                    "_id": "5dc12a00a875cd0ca8b871e9",
                    "name": "user 2",
                    "email": "[email protected]",
                    "date": "2019-11-05T07:51:28.892Z",
                    "__v": 0
                }
            },
            {
                "_id": "5dc12a6aa875cd0ca8b871ec",
                "user": {
                    "_id": "5dc12a0aa875cd0ca8b871ea",
                    "name": "user 3",
                    "email": "[email protected]",
                    "date": "2019-11-05T07:51:38.060Z",
                    "__v": 0
                }
            }
        ],
        "__v": 0
    }
]



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. spring-data-mongodb đưa ra ngoại lệ xác thực mongodb

  2. Bắt đầu với Python và MongoDB

  3. Cách chính xác để lập chỉ mục trong MongoDB là gì khi tồn tại sự kết hợp lớn của các trường

  4. Bản sao MongoDB bị lỗi và sẽ không khởi động lại

  5. Cách kiểm tra xem kết nối MongoDB có còn tồn tại trong Node.js không