タイトルがわかりにくいと思いますが、もっとわかりやすく説明させてください。
私のマングーススキーマは次のようになります。
var LocationSchema = new Schema({
locationKey: {type: String, unique: true},
wheat: Array,
barley: Array,
cty: {type: String, unique: true},
twp: {type: String, index: { unique: true} , dropDups: true},
rge: {type: String, unique: true},
});
このスキーマを使用して 3500 の場所を作成するコードをいくつか書きました。問題は、多くの場所で の値が同じであることですtwp
。この場合、オブジェクトを作成する必要がありますが、作成twp
された他のオブジェクトに同じtwp
.
上記のように、上記のユニークなアプローチを使用してみました。わかりやすくするために、2 つのサンプル オブジェクトを次に示します。
オブジェクト 1:
{
"_id" : ObjectId("56f5af9547a341720b0b25cd"),
"rge" : "034E",
"twp" : "001N",
"cty" : "003",
"locationKey" : "003001N034E",
"__v" : 0
}
を持つ新しいオブジェクトを作成する場合は、作成しtwp: 001N
たいと思いますが、次のようになります。
{
"_id" : ObjectId("56f5af9547a341720b0b25cd"),
"rge" : "034W",
"cty" : "004",
"locationKey" : "003001N034E",
"__v" : 0
}
サーバー JS には 3,000 個のオブジェクトの配列があります。この配列をループして、次のように各アイテムの Location オブジェクトを作成しています。
locations.forEach(function(item){
var location = new Location();
location.locationKey = item.locationKey.trim();
location.cty = item.cty.trim();
location.twp = item.twp.trim();
location.rge = item.rge.trim();
location.wheat = item.wheat;
location.barley = item.barley;
location.save();
});