0

Sails.js (0.9.8) と MongoDB (sails-mongo アダプター経由) を使用して、ツリー ビューに配置できるページのコレクションを作成しています。ページのパスを UUID の配列に保存したい

私のモデル:

module.exports = {    
    schema: true,
    attributes: {
        uuid: {
            type: 'string',
            unique: true,
            required: true,
            uuidv4: true
        },
        name: {
            type: 'string',
            required: true,
            empty: false
        },
        path: {
            type: 'array',
            required: true,
            array: true
        }
    }
}

「ルート」ページを保存するとうまく機能します (ルート ページであるため、「パス」プロパティには 1 つの項目しかありません。MongoDB に保存されたものは次のとおりです。

{
    _id: ObjectId("52f853e9609fb6c0341bdfcc"),
    createdAt: ISODate("2014-02-10T04:22:01.828Z"),
    name: "Home Page",
    path: [
        "a2b23e1f-954b-49a3-91f1-4d62d209a093"
    ],
    updatedAt: ISODate("2014-02-10T04:22:01.833Z"),
    uuid: "a2b23e1f-954b-49a3-91f1-4d62d209a093"
}

しかし、以前に作成したページ (ホームページ/製品) の下に「サブページ」を作成したい場合、次のエラーが発生します。

MongoError: E11000 重複キー エラー インデックス: cms-project.item.$path_1 重複キー: { : "a2b23e1f-954b-49a3-91f1-4d62d209a093" }

これが私が送ったデータです:

{ name: 'Products',
  uuid: 'a004ee54-7e42-49bf-976c-9bb93c118038',
  path: 
   [ 'a2b23e1f-954b-49a3-91f1-4d62d209a093',
     'a004ee54-7e42-49bf-976c-9bb93c118038' ] }

私はおそらく何かを逃しましたが、何がわかりません。パスを配列ではなく文字列に保存すると、うまく機能しますが、エレガントで便利ではありません。

4

1 に答える 1