OrientDB javascript 函数,getDataBase 上的 "save" 不工作

OrientDB javascript function, "save" on getDataBase not working

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

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

我知道这个教程很旧,我已经遇到了一些问题,例如我不得不删除块

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

来自 orientdb-server-config.xml,使以下代码工作:

var db = orient.getDatabase();

这正常吗?

既然这条线没问题,我又遇到了麻烦,这里是"my"代码:

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;

现在问题出在"save"方法上

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)

有人知道该怎么做吗?谢谢!

相当等价的东西,但使用图表 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();