MongoD:如何更新集合中文档的特定字段?

kin*_*der 1 mongoose node.js

我在 MongoDB 中有一个作业集合,在这个集合中,文档中有一个名为应用用户的字段。我想在新用户申请此工作时更新此字段。因此,基本上此字段存储申请此工作的所有用户的 ID。

我正在使用 findOneAndUpdate() 函数,但无法做到。

Job.findOneAndUpdate({ _id: req.params.id }, { $set: { appliedUser: 
req.user.id } }, function(err, job) {
    console.log(job);
})
Run Code Online (Sandbox Code Playgroud)

这是我的架构:

const jobSchema = new Schema({
date: { type: Date, default: Date() },
expirydate: { type: Date, required: true },
name: { type: String, required: true },
companydetails: { type: String, required: true },
address: { type: String, required: true },
role: { type: String, required: true },
city: { type: String, required: true },
minsalary: { type: Number, required: true },
maxsalary: { type: Number, required: true },
skills: { type: Array, required: true },
minex: { type: Number, required: true },
appliedUser: [{ type: Schema.Types.ObjectId, ref: 'users', unique: 
true }],
user: { type: String, required: true }

})
Run Code Online (Sandbox Code Playgroud)

文档数组未更新。我无法找到错误。

Cuo*_*goc 5

看起来你需要的是$addToSet。例子:

Job.findOneAndUpdate({ _id: req.params.id }, { $addToSet: { appliedUser:  req.user.id } }, function(err, job) {
  console.log(job);
})
Run Code Online (Sandbox Code Playgroud)