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