我正在关注一个视频 tutorial当尝试执行以下代码时
for (var i = 0; i < n; i++) {
var name = prefix + "_" + i;
var email = name + "@me.com";
member = {
"@class": "Member",
"name": name,
"password": name,
"email": email
};
var result = gdb.save(member);
}
gdb.commit();
return n;
我收到错误消息
sun.org.mozilla.javascript.EcmaError: ReferenceError: "gdb" is not defined.
(<Unknown source>#15) in <Unknown source> at line number 15
ReferenceError: "gdb" is not defined. (<Unknown source>#15)
意识到可能不存在作者提到的“隐式变量gdb
”这样的东西,我在循环之前添加了声明,如下
var gdb = orient.getDatabase();
这次错误消息说
Error on parsing script at position #0: Error on execution of the script Script:
newPOJS ------^ sun.org.mozilla.javascript.internal.WrappedException: Wrapped
com.orientechnologies.orient.core.exception.OConfigurationException: No database
instance found in context (#2) in at line number 2 Wrapped
com.orientechnologies.orient.core.exception.OConfigurationException: No database
instance found in context (#2) No database instance found in context
快速研究指出this question显然是开放的 bug 。应用建议的解决方法,即从配置文件中删除以下 block 我再次尝试却又出现另一个错误
com.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.save matching JavaScript argument types (object) is ambiguous; candidate methods are:
class com.orientechnologies.orient.core.record.impl.ODocument save(java.util.Map)
class com.orientechnologies.orient.core.record.impl.ODocument save(com.orientechnologies.orient.core.record.ORecordInternal)
现在有没有办法向编译器提示要使用哪个版本的 save
方法?或者是否有一个完全不同的解决方法来解决这个问题?
最佳答案
我建议您访问我们有关函数主题的文档:
http://www.orientechnologies.com/docs/last/orientdb.wiki/Functions.html
引用的视频相当旧,正如您所注意到的,gdb 变量不再是预定义的。我正在处理文档的这一部分,以尝试使其更加健壮。我们还计划对免费 Studio 的功能部分进行一些改进。
如果您在阅读文档后还有任何其他问题,请告诉我们。
关于javascript - OrientDB函数: unable to save document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26350078/