所以我目前正在使用
await User.findOneAndUpdate({email: req.user.email }, {lastLoad: 'dfConsignee'});
但是我希望能够使用提交表时要更新的相同truckNumber来更新所有用户。
所以我尝试使用此
await User.update({truckNumber: truckNumber }, {lastLoad: 'dfConsignee'});
但这仅出于某种原因更新了活动用户。填写表格后,我该如何更新所有具有相同卡车编号的帐户?
预先感谢你们<3
编辑---------------------------------------------- -------------------------------------------------- ----------------------------
“活动用户”是指登录用户。
猫鼬模式:
const mongoose = require('mongoose');
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
},
isVerified: {
type: Boolean,
default: false
},
profilePic: {
type: String,
default: 'abc'
},
truckDriver: {
type: Boolean,
default: false
},
truckNumber: {
type: Number
},
admin: {
type: Boolean,
default: false
},
customer: {
type: Boolean,
default: false
},
loadPlanning: {
type: Boolean,
default: false
},
lastLoad: {
type: String,
default: "dfConsignee"
}
});
const User = mongoose.model('User', UserSchema);
module.exports = User;
示例文档:
{"_id":{"$oid":"aaaaaaaaaaaaaaaa"},
"isVerified":true,
"profilePic":"abc",
"truckDriver":true,
"admin":false,
"customer":false,
"loadPlanning":false,
"lastLoad":"aAtShipper",
"name":"Nicholas Cage",
"email":"NicholasCage@thegreatestactorever.com",
"password":"password",
"date":{"$date":{"$numberLong":"1580858993547"}},"__v":{"$numberInt":"0"},
"truckNumber":"123",}
为了进一步说明,在提交表单时,它将拉出已登录用户的卡车编号。提交表单时,我希望每个共享相同卡车编号的人也要在lastLoad中更新其值。
答案 0 :(得分:0)
尝试使用updateMany()
。生成的代码如下所示:
User.updateMany({truckNumber: truckNumber}, {lastLoad: 'dfConsignee'});
如果您真的想全面了解Mongoose和MongoDB,建议您看一下API docs for Mongoose和MongoDB Manual,它会详细介绍您使用的工具使用MongoDB时可用。这就是我找到这个问题的答案的方法!
答案 1 :(得分:0)
OMG终于弄清楚了:D
我认为,当我重新启动Nginx时,它将重新启动服务器上运行的应用程序(我会看到前端所做的更改,但是后端更改不会出现),一旦我重新启动了PM2,所有的后端更改随之而来。
谢谢大家的帮助:D
现在,“ await Users.updateMany({truckNumber:req.user.truckNumber},{lastLoad:'aAtShipper'}”)将使用共享卡车编号:D
更新所有帐户