0

Orientdb で埋め込みフィールドのプロパティを更新しているときに問題に直面しています。

以下は、問題を再現する手順です。

CREATE VERTEX Foo set value = { 'abc-def-hgi':"blah blah", '1ab-2cd-3ef': "aaaaa", '345-jkl-mno':'ppppp' }, id = 1
CREATE VERTEX Foo set value = { 'abc-def-hgi':"mmmmm", '1ab-2cd-3ef': "nmnmnmn", '345-jkl-mno':'qqqq' }, id = 2
CREATE VERTEX Foo set value = { 'abc-def-hgi':"lorem ipsum", '1ab-2cd-3ef': "mmmmm", '345-jkl-mno':'llll' }, id = 3

プロパティ「value」は、タイプ「Embedded」として宣言されています。

ここで、列「値」の「abc-def-hgi」プロパティの ID「1」のレコードを更新したいと考えています。

以下のクエリを試しましたが、どちらも機能しませんでした:

update Foo set value["abc-def-hgi"] = "new new" where id = 1
update Foo set value.abc-def-hgi = "new new" where id = 1

フィールドのプロパティ名のハイフン ("-") に問題があるようです。

Orientdb のバージョンを使用しています: 2.2.11

注: orientdb Git リポジトリの問題を調べたところ、これが見つかりまし。それが私の問題に関連しているかどうかはわかりませんが、私の側では機能していません。

どんな助けでも大歓迎です。

4

2 に答える 2

0

あなたが自分で言ったように、問題は-にあります。

- なしのフィールドで試してみると、次のクエリが機能します。

update Foo set value.prop = "myprop1" where id=1

- でフィールドを作成しようとすると、例外が発生します。

アップデート

ハイフンを含むプロパティを作成するには、このコマンドを使用できます

create property foo.`abc-def-hgi` string

それが役に立てば幸い

于 2016-12-06T14:50:18.457 に答える