gpt4 book ai didi

node.js - Mongoose 更新到数组中

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:31 24 4
gpt4 key购买 nike

我有这个架构

var ArticleSchema = new Schema({
user_id: { type: Schema.ObjectId, ref: "User"},
title: String,
description: String,
content: String,
visible: Boolean,
saved: Boolean,
deleted: {type: Boolean, default: false },
permalink: String,
created_at: { type: Date, default: Date.now },
edited_at: { type: Date, default: Date.now },
tags : [],
comments: {
comment: String,
name: String,
email: String,
date: Date,
deleted: Boolean,

}

});

我想将已删除的字段更新到特定数组的注释数组中。

这是我的做法。

    this.model.update(
{
_id: data.articleId
},
{
$set: { 'comments.$.deleted' : true }
},
function(err, doc){
console.info(doc);
console.info(err);
callback(doc);
});

};

没有任何反应,我直接在 mongo 控制台上尝试并且它有效。

但在 Mongoose 中则不然。出于某种原因,我得到了 console.info()、null 和 0 作为结果。该文档永远不会更新。

如果我尝试更新其他未嵌套的值,它会起作用。

最佳答案

您可以尝试以下方法:

this.model.update(
{
_id: data.articleId
},
{
$set: { 'comments.deleted' : true }
},
function(err, doc){
console.info(doc);
console.info(err);
callback(doc);
});
};

您的代码无法正常工作,因为注释字段不是数组,而是嵌入的子文档,并且 $ positional operator仅标识数组中要更新的元素,而不显式指定该元素在数组中的位置。

关于node.js - Mongoose 更新到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30155135/

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