Javascript 为什么我会得到nedb错误;不能混合使用修改器和普通字段“;更新
我尝试使用以下代码更新nedb文档:Javascript 为什么我会得到nedb错误;不能混合使用修改器和普通字段“;更新,javascript,nedb,Javascript,Nedb,我尝试使用以下代码更新nedb文档: var doc = { "$set": { "freimessen.messungen": [ { "Intervall": "kein", "messvorlage": 9,
var doc = {
"$set": {
"freimessen.messungen": [
{
"Intervall": "kein",
"messvorlage": 9,
"startzeit": "2021-04-21T16:00:00.000Z",
"gaspruefer": 1,
"kommentar": "Bitte sorgfältig messen :)",
"nummer": 1,
"befahrungid": 75,
"csenummer": "EPTW-00075-01",
"cseid": "288"
}
],
"status": {
"id": 3,
"name": "Messungen beauftragt"
}
}
};
var idobj = { 'id': 35 };
mydb.update(idobj, doc, {}, function (err, numreplaced) {
// error handling
});
但是nedb抱怨说:你不能混合使用修饰符和普通字段
更新文档有什么问题?我想更新freimessung.messungen字段中的整个数组。所有项目都需要获得一个新字段“befahrungId”,因此我基本上阅读了文档,将befahrungId添加到数组中的每个项目并进行更新,但这似乎不起作用
我真的需要单独更新每个数组项吗?我试着运行你的代码,但它运行正常,我看不到任何修饰符与普通字段混合。您确定这与抛出错误的代码完全相同吗?关于更新阵列。在您的示例中,将旧的
messungen
数组替换为新的单元素数组。我想这不是你的本意,对吧?您是否希望将新元素推送到现有的messungen
数组中?实际的代码被包装成承诺,但基本上是相同的。唯一的区别是,更新后的记录实际上相当复杂,我只对其进行了部分更新。奇怪的是它对你有用。是的,我想更新旧的数组-这就是我的意图,因为所有元素都被修改了(在这个例子中是一个元素)。奇怪的是,当我在你的应用程序中尝试它时,它也适用于我,你是直接调用nedb方法还是有像feathers nedb或类似的包装器?