gpt4 book ai didi

javascript - 使用 "extend"util 设置 Mongoose 模型实例属性

转载 作者:太空宇宙 更新时间:2023-11-04 02:32:07 26 4
gpt4 key购买 nike

我有 Mongoose 模型实例:

var s = new Song({
song_id: '123',
title: 'sample song',
artist: {
name: 'sample artist',
id: '456'
}
});

现在我想设置/更新其属性,但使用extend(例如来自nodejs util._extend)

s = extend(s, {
title: 'changed title',
artist: {
name: 'changed artist',
id: '789'
}
});

s.save();

虽然 title (作为顶级属性)设置正常,但 artist 中的更改不可见。

我知道我可以通过以下方式设置它:

s.artist.name = 'changed artist';

但是我遗漏了什么或者这种更新属性的方法不可用吗?

编辑

Gah...看起来有人以错误的方式定义了模式。而不是 artist 字段定义为

artist: {
name: String,
id: String
}

它的定义如下

artist.name: String, 
artist.id: String

当我重新定义它时,它现在可以工作了。谢谢

最佳答案

你可以做的是使用Mongoose的更新方法:

Song.update({
song_id: '123',
}, {
$set: {
title: 'changed title',
artist: {
name: 'changed artist',
id: '789',
},
},
}, function(err, numAffected) {
...
});

但是,我实际上不明白为什么您的扩展尝试失败。它似乎对我有用,我通常使用下划线的 _.extend 函数。

关于javascript - 使用 "extend"util 设置 Mongoose 模型实例属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763144/

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