【发布时间】:2020-04-27 18:13:02
【问题描述】:
我要投票,它看起来像一个对象数组,看起来像用户的 ID 和他设置的值。
如果用户已经投票,但改变了他的值,你需要改变这个用户的对象数组中的 rate 值。
我需要创建一个对象数组,数据将像这样插入其中 {rate: 3, user: "asdr2r24f2f42f24"} 并且如果用户已经在这个数组中投票,那么您需要更改值 rate给定的用户
我已经尝试过做一些事情,但在我看来你可以写得更好,你能帮忙吗?
JSONhttps://jsoneditoronline.org/?id=442f1dae0b2d4997ac69d44614e55aa6
router.post('/rating', (req, res) => {
console.log(req.body)
// { id: 'f58482b1-ae3a-4d8a-b53b-ede80fe1e225',
// rating: 5,
// user: '5e094d988ddbe02020e13879' }
Habalka.find({
_id: req.body.id
})
.then(habalka => {
// here I need to check whether the user has already voted or not, and from this whether to add an object with it or update the number
Habalka.updateOne(
{_id: req.body.id},
{$push: {rating: {rate: req.body.rating, user: req.body.user}}}
)
.then(e => {
console.log(e)
})
});
});
架构
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const HabalkaSchema = new Schema({
_id: {
type: String
},
bio: {
firstname: String,
lastname: String,
middlename: String,
company: String
},
rating: [
],
files: [
{
_id: {
type: String
},
destination: {
type: String
},
filename: {
type: String
},
path: {
type: String
},
folder: {
type: String
},
info: {
size: {
type: Number
},
mimetype: {
type: String
},
encoding: {
type: String
},
originalname: {
type: String
},
fieldname: {
type: String
},
},
date: {
type: Date,
default: Date.now
},
bio: {
type: Object
},
userId: String,
guessId: {},
}
],
date: {
type: Date,
default: Date.now
}
});
module.exports = Habalka = mongoose.model('habalka', HabalkaSchema);
【问题讨论】:
标签: node.js mongodb express mongoose