gpt4 book ai didi

coffeescript - Collection.update 给服务器错误

转载 作者:行者123 更新时间:2023-12-04 16:50:29 25 4
gpt4 key购买 nike

尝试同时学习 Meteor 框架和 coffeescript/node。一直在研究一个利用 onloadend 的简单文件上传程序。当调用 FileReader onloadend 事件函数时,我尝试确定该文件是否已经存在,如果存在,我将更新为新的文件数据和版本。

该代码适用于插入但不适用于更新。有人可以帮忙吗?我已经在 meteor-talk 上发布了没有答案的帖子,因为我怀疑是在周末(当我进行大部分实验时)。

代码片段...

file_reader.onloadend = ((file_event) ->
(event) ->
f_filename = escape file_event.name
version = 0
f_record = null

f_record = doc_repo.findOne { name: f_filename }

if f_record && f_record.name
doc_repo.update
name: f_filename
,
$set:
version: 10
else
doc_repo.insert
name: f_filename
data: event.target.result
version: 0
)(file_obj)

错误

Exception while invoking method '/documents/update' TypeError: Cannot read property 'toBSON' of undefined
at Function.calculateObjectSize (/usr/local/meteor/lib/node_modules/mongodb/node_modules/bson/lib/bson/bson.js:210:12)
at BSON.calculateObjectSize (/usr/local/meteor/lib/node_modules/mongodb/node_modules/bson/lib/bson/bson.js:1463:15)
at UpdateCommand.toBinary (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/commands/update_command.js:67:20)
at Connection.write (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/connection/connection.js:138:40)
at __executeInsertCommand (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/db.js:1837:14)
at Db._executeInsertCommand (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/db.js:1912:7)
at Collection.update (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/collection.js:445:13)
at app/packages/mongo-livedata/mongo_driver.js:178:16
at Db.collection (/usr/local/meteor/lib/node_modules/mongodb/lib/mongodb/db.js:507:44)
at _Mongo._withCollection (app/packages/mongo-livedata/mongo_driver.js:51:13)

最佳答案

看起来 Mongo 没有获得执行更新所需的第二个参数。所以在常规 JavaScript 中,它期望这样:

collection.update({..selector..}, { .. modifier });

所以我会尝试在修饰符对象周围放置一些大括号,如下所示:

doc_repo.update
name: f_filename,
{
$set:
version: 10
}

关于coffeescript - Collection.update 给服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419488/

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