gpt4 book ai didi

MongoDB - "The dollar ($) prefixed field\' $$hashKey\' in\' 字段名".$$hashKey\' is not valid for storage.' "

转载 作者:可可西里 更新时间:2023-11-01 09:24:27 26 4
gpt4 key购买 nike

在尝试更新文档时,我在字段 timesToDisplay 中收到上述错误。

MongoDB 版本 2.6.7。

整个模型:

msg = {
'name': '',
'template': '',
'displayDurInMilliSec': 0,
'timesToDisplay': [],
'images': [],
'texts': [],
'screen': []
}

我想我会在其他 3 个数组字段中遇到同样的错误。

我试过使用 $set 但仍然遇到同样的错误。

代码:

function updateMessage(msg) {
var conditions = {_id: msg._id}
, update = { 'name': msg.name,
'template': msg.template,
'displayDurInMilliSec': msg.displayDurInMilliSec,
'timesToDisplay': msg.timesToDisplay,
'images': msg.images,
'texts': msg.texts,
'screen': msg.screen
}

messageModel.update(conditions, update, callback);

function callback(err, numAffected) {
if (!err) console.log(numAffected)
else console.log(err)
}
}

编辑 msg 参数本身就是一个文档:

{ _id: '557d58abd54955480db6694f',
name: 'msg99',
timesToDisplay: [ { startDate: '2015-06-19T21:00:00.000Z',
'$$hashKey': 'object:214',
endDate: '2015-06-25T21:00:00.000Z',
daysOfTheWeek: [Object],
startTimeOfDay: '11',
endTimeOfDay: '13' } ],
images: [],
texts: [],
screen: [ 1 ],
'$$hashKey': 'object:54',
displayDurInMilliSec: '40189',
template: 'templates/Template2.html' }

最佳答案

$$hashkey 字段是 AngularJS 在使用 ngRepeat 或 ngOptions 时添加的。在 ngRepeat 的情况下,您可以通过将 track by $index 附加到它来更改重复字符串。要使用 ngOptions,您必须自己过滤掉该字段。 AngularJS 提供了一个快速的过滤方法:angular.toJson。这将过滤掉所有以两个美元符号为前缀的字段。 Check out the documentation .

我意识到这不是 MongoDB 的答案,但这个特定错误($$hashkey)通常是由于 AngularJS 造成的。

关于MongoDB - "The dollar ($) prefixed field\' $$hashKey\' in\' 字段名".$$hashKey\' is not valid for storage.' ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30829208/

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