OrientDB javascript函数,getDataBase上的“save”无法正常工作

时间:2015-04-01 16:49:49

标签: javascript orientdb

我正在关注本教程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();

这是正常的吗?

既然这条线路没问题,我又遇到了麻烦,这是“我的”代码:

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);

它说这种方法是ambigus,我只是不知道该怎么做:)

这是错误(用法语,我喜欢用英语,但我没有找到如何在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)

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

2 个答案:

答案 0 :(得分:1)

相当于使用Graph API的东西:

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

return;

答案 1 :(得分:0)

您应该通过调用:

在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();