Node.js 如何更新reff文档中的数据?
我有这样的模式:Node.js 如何更新reff文档中的数据?,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有这样的模式: const mongoose = require('mongoose'); const Schema = mongoose.Schema; const Ticket = require("../ticket/model").Ticket; const RatingSchema = new Schema({ rating_id: { type: String, required: [false, "ID is
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
const Ticket = require("../ticket/model").Ticket;
const RatingSchema = new Schema({
rating_id: {
type: String,
required: [false, "ID is required"]
},
rating: {
type: String,
enum : ['1', '2', '3', '4', '5'],
required: [false, "Name is required"]
},
feedback: {
type: String,
required: [false, "Detail is required"]
},
ticket_id: {
type: Schema.Types.ObjectId,
required: [false, "Priority is required"],
ref : Ticket
},
created_by: {
type: String,
required: [false, "This field is required"]
},
created_date: {
type: Date,
required: [false, "This field is required"],
default: Date.now()
},
}, {collection: 'rating'});
const Rating = mongoose.model("Rating", RatingSchema);
module.exports = {Rating, RatingSchema};
服务是这样的:
EditRatingByParent: async function(id){
try {
const filter = { 'rating': {$ne: null} };
const update = { 'ticket_id.rated': false };
const rating = await Rating.find(filter)
const ticket = await Rating.updateMany( {rating: {$ne: null}},
{$set: {"ticket_id.rated": false}});
if(ticket){
return ticket;
}else{
return false;
}
}catch (e) {
console.log(e);
}
}
我的问题是,是否可以更新reff对象?我已尝试通过以下方式到达目标:
{$set: {"ticket_id.rated": false}});
但系统仍将该代码读取为票证id字段,未达到额定字段。有人能帮我解决这个问题吗?谢谢 是,可以更新ref对象,但不能使用单个更新查询,因为数据包含在两个不同的集合中。因此,您需要链接update语句并使用return result。要澄清,您需要选择所有与特定筛选条件匹配的评级文档,并更新与之关联的票据文档(通过引用),对吗?对,这就是我想要的。可能吗?