поэтому я пытаюсь получить заголовок сообщения, так как при отображении массива сообщений, сделанных на панели пользователя, я могу показывать идентификатор сообщения только при перенаправлении их, это работает ... но я думаю, было бы более разумно иметь НАЗВАНИЕ вместо этого. Население, кажется, не помещает объект * * * в массив, возможно, я неправильно понимаю население, или есть лучший способ go об этом ... спасибо.
это код реакции для этого списка
<ol>
{ user ? user.posts.map((item,i) => (
<React.Fragment key ={i}>
<li><Link to={`/api/posts/item/${item}`}>{item}</Link></li>
<button onClick={() => { setId(item) }}>Delete this post</button>
</React.Fragment>
)) : null }
</ol>
это внутренний код, который дал мне идентификатор пользователя, и заполнить f (n)
userModel.findOne({ email: req.body.author }, function(error, user) {
const locationURL = req.files.map((item) => item.location);
postModel.create({ ...req.body, image: locationURL }, (error, returnedDocuments) => {
if (error) {
throw new Error(error);
}
user.posts.push(returnedDocuments._id);
user.save((err) => {
console.log(err);
});
});
// this will populate the posts field in our userSchema (which contain the id references to our posts)
userModel.findOne({ email: req.body.author }).populate('posts').exec((err, user) => {
user.save((err) => {
console.log(err);
});
});
});
в пользовательском документе это выглядит следующим образом: массив идентификаторов
[
{
"premium": false,
"max_posts": 62,
"posts_made": 57,
"posts": [
"5e21252ac51ac82838947875",
"5e212a6c3b1619294832a3f2"
],
"_id": "5e0fe3f33c2edb2f5824ddf2",
"email": "myemail@gmail.com",
"createdAt": "2020-01-04T01:01:39.840Z",
"updatedAt": "2020-01-17T03:36:36.086Z",
"__v": 22
}
]
в моем userSchema Я ссылаюсь на сообщения ... но, возможно, я Я делаю это неправильно и каким-то образом могу получить доступ к этой информации ...
let User = new Schema(
{
email: {
type: String,
unique: true
},
premium: {
type: Boolean,
default:false
},
max_posts: {
type: Number,
default:3
},
posts_made: {
type: Number,
default:0
},
posts: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Post'
}
]
},
{
timestamps: true
}
);
Должен ли я просто вызвать запрос топора ios, чтобы получить имена тех удостоверений личности, которые у меня есть, у меня была такая мысль, но я подумал это могут быть необоснованные обращения к БД, которые могут стать дорогими. Спасибо.