下記のmongoコレクションのscorecardList.filenameフィールドにユニークなインデックスを作成しようとしています。目的は同じファイル名でscorecardListに別の要素を作成できないはずです。Mongo DBコレクションの埋め込み配列にユニークなインデックスを追加する方法
Mongoのスキーマ:
{
"Name": "Ravikant Khond",
"PIN" : "411057",
"scorecardList": [
{
"fileName" : "ScoreCard_April_2016.pdf",
"runDate" : ISODate("2016-05-01T00:00:00.000Z"),
"month" : "April",
"year" : "2016"
},
{
"fileName" : "ScoreCard_May_2016.pdf",
"runDate" : ISODate("2016-06-01T00:00:00.000Z"),
"month" : "May",
"year" : "2016"
}
]
}
次のように[1]一意インデックスの作成中に、私が使用しよう
Mongoのコマンドである:
db.testing.createIndex(
{ "scorecardList.filename": 1 },
{
unique: true,
partialFilterExpression: {
"scorecardList.filename": { $exists: true }
}
}
);
インデックスが作成されているにもかかわらずIスコアカードに既存のファイル名を追加することができます。
助けてください。
サンプルドキュメントでは、scorecardList.fileNameに大文字の「N」が表示されます。そして、あなたのインデックスは、ファイル名に小文字の「n」を付けてインデックスを作成しています。 – dyouberg