OrientDB函数:无法保存文档

OrientDB functions: unable to save document

本文关键字:保存 文档 函数 OrientDB      更新时间:2023-09-26

当我试图执行以下代码时,我正在观看一个视频教程

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

快速研究指出了这个问题,以及什么显然是一个开放的bug。应用了建议的解决方法,即从配置文件中删除以下块我再次尝试,但得到另一个错误

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变量不再是预定义的。我正在使用文档的这一部分,试图使其更加健壮。我们还计划对免费工作室的功能部分进行一些改进。

如果您在阅读文档时有任何其他问题,请告诉我们。