Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何更新reff文档中的数据?_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

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。

要澄清,您需要选择所有与特定筛选条件匹配的评级文档,并更新与之关联的票据文档(通过引用),对吗?对,这就是我想要的。可能吗?