タイトルが混乱しているとわかりますが、より明確に説明してください。私はこのスキーマを使用して3500点の場所を作成するいくつかのコードを書いたMongooseはオブジェクトを作成する必要がありますが、別のオブジェクトにすでにこのプロパティがある場合はプロパティをスキップします。
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},
});
:ここ
は私のマングースのスキーマは次のようになります。問題は、多くの場所がtwp
の同じ値を持つことです。この場合、まだオブジェクトを作成する必要がありますが、作成された他のオブジェクトに同じtwp
がある場合はtwp
を作成しません。
上記のように私は上記のユニークな方法を試してみました。ここでは、2つのサンプルオブジェクトは、より明確にするためである。
オブジェクトの一つ:私はtwp: 001N
を持つ新しいオブジェクトを作成するつもりならば
{
"_id" : ObjectId("56f5af9547a341720b0b25cd"),
"rge" : "034E",
"twp" : "001N",
"cty" : "003",
"locationKey" : "003001N034E",
"__v" : 0
}
、私はそれが作成されるのが好きだろうが、そう見えるように:
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();
});
:
私は3000個のオブジェクトの配列を持っているサーバーのJSで
{
"_id" : ObjectId("56f5af9547a341720b0b25cd"),
"rge" : "034W",
"cty" : "004",
"locationKey" : "003001N034E",
"__v" : 0
}
、私はそうのように各項目の場所のオブジェクトを作成するには、この配列をループしています
私はこのコードを自分のスキーマに追加し、データベースを落として再構築しました。重複はまだそこにあります。私は何かを見逃していましたか、新しい場所を作成するときにこのメソッドを呼び出す必要がありますか? (mongoose 4.2.2を使用すると問題はないと信じています) – fresh5447
@ fresh5447、私は自分のコードをテストして、うまくいきます。あなたの位置作成コードを要点などで共有してください。 – zangw
@ fresh5447、私はあなたのための別のオプションで私の答えを更新しました。それを試してみてください... – zangw