gpt4 book ai didi

javascript - 使用动态路径与 mongoose 进行更新

转载 作者:行者123 更新时间:2023-12-03 00:56:06 25 4
gpt4 key购买 nike

我的模型如下所示:

var eventSchema = new mongoose.Schema({
'eventTitle': String,
'location': String,
'startDate': String,
'endDate': String,
'startTime': String,
'endTime': String,
'createdBy': mongoose.Schema.Types.ObjectId, // Here we will store the _ID from the user EOSP.
'attendants': {
'seekers': [mongoose.Schema.Types.ObjectId],
'employers': [
// {
// 'id': mongoose.Schema.Types.ObjectId,
// 'boothVisits': Number,
// }
],
},
'isFinished': {'type': Boolean, 'default': false},
'uploadedResumes': Number,
'downloadedResumes': Number,
});

这是我的代码:

Event.findByIdAndUpdate(eventId, {$inc:{`attendants.employers[${req.params._id}].boothVisits`: 1}, $upsert: true});

所以问题是,如果我尝试这样做^^^^^ 我的 Node 会对我大喊大叫:

/home/alex/Documents/Projects/ontario-job-portal/routes/employer.js:58 Event.findByIdAndUpdate(eventId, {$inc: {attendants.employers[${req.params._id}].boothVisits: 1}, $upsert: true}); ^^^^^^^^^^^^^^^^^^^^^^^^

SyntaxError: Unexpected template string

但是如果我尝试这样做:

const path = `attendants.employers[${req.params._id}].boothVisits`;
Event.findByIdAndUpdate(eventId, {$inc: {path: 1}, $upsert: true});

我的 IDE 告诉我,path 变量实际上并未在查询中使用。我怎样才能绕过它?我真的需要 id 是动态的。

最佳答案

尝试使用以下查询

Tested on mongo GUI.

const mongoose = require('mongoose');


db.getCollection('content')
.update({
'attendants.employers.id': mongoose.Types.ObjectId((req.params._id)
}, {
$inc: { "attendants.employers.$.boothVisits": 1 }
})

关于javascript - 使用动态路径与 mongoose 进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52835543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com