OrientDB javascript函数;保存“;在getDataBase上不工作

OrientDB javascript function, "save" on getDataBase not working

本文关键字:getDataBase 工作 javascript 函数 保存 OrientDB      更新时间:2023-09-26

我正在学习本教程http://pettergraff.blogspot.fr/2014/01/getting-started-with-orientdb.html

在第四部分中,我们假设创建一个javascript函数,该函数将推送数据库中的一些"成员"。

我知道这个教程是旧的,我已经经历了一些问题,例如我不得不删除块

<handler class="com.orientechnologies.orient.graph.handler.OGraphServerHandler">
            <parameters>
                <parameter value="true" name="enabled"/>
                <parameter value="50" name="graph.pool.max"/>
            </parameters>
        </handler>

从orientedb-server-config.xml,使以下代码工作:

var db = orient.getDatabase();

这正常吗?

现在这条线可以了,我又遇到了一个麻烦,这是"我的"代码:

var db = orient.getDatabase();
db.begin();
for (var i = 0; i < n; i++) {
  var name = prefix + "_" + i;
  var email = name + "@gmail.com";
  var member = {
    "@class": "Member",
    "name": "robin",
    "password": "robin",
    "email": "robin"
  };
  var result = ODocument.save(member);
}
db.commit();
return 0;

现在问题出在"保存"方法上

var result = db.save(member);

据说这种方法是模糊的,我只是不知道该怎么办:)

以下是错误(法语,我想用英语,但我没有找到如何在OrientDB界面上更改de语言)

Erroronparsingscriptatposition#0: ErroronexecutionofthescriptScript: createSomeMembers------^sun.org.mozilla.javascript.EvaluatorException: LechoixdelaméthodeJavacom.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.savecorrespondantauxtypesd'argumentJavaScript(object)estambigu.Lesméthodesproposéessontlessuivantes???: classcom.orientechnologies.orient.core.record.impl.ODocumentsave(com.orientechnologies.orient.core.record.ORecord)classcom.orientechnologies.orient.core.record.impl.ODocumentsave(java.util.Map)(<Unknownsource>#18)in<Unknownsource>atlinenumber18LechoixdelaméthodeJavacom.orientechnologies.orient.core.command.script.OScriptDocumentDatabaseWrapper.savecorrespondantauxtypesd'argumentJavaScript(object)estambigu.Lesméthodesproposéessontlessuivantes???: classcom.orientechnologies.orient.core.record.impl.ODocumentsave(com.orientechnologies.orient.core.record.ORecord)classcom.orientechnologies.orient.core.record.impl.ODocumentsave(java.util.Map)(<Unknownsource>#18)

有人知道该怎么办吗?非常感谢。

相当等效的东西,但使用Graph API:

var db = orient.getGraph();
var member = db.addVertex("class:Member");
member.setProperty("name", "robin");
member.setProperty("password", "robin");
db.commit();
return;

您应该通过调用来转换ODocument中的JSON

var result = new com.orientechnologies.orient.core.record.impl.ODocument();
result.fromJSON(member);
result.save();

甚至:

var result = new com.orientechnologies.orient.core.record.impl.ODocument().fromJSON(member).save();