2016-09-10 10 views
0

私はノードJsに新しいので、新しいオブジェクトを 配列に更新(挿入)することが困難です。ここで新しいオブジェクトをmongoose nodejsの配列に追加または追加する

はスキーマです:

var Schema = new mongoose.Schema({ 
    name: String, 
    ips: [{ 
     ip: { 
      type: mongoose.Schema.Types.ObjectId, 
      ref: 'Ip' 
     } 
    }] 
}); 

私はそうのようなIPS配列に新しい行を追加しようとしています:

IPスキーマ:

var IpSchema = new mongoose.Schema({ 
    ip: String, 
    objects: [{ 
     object:{ 
       type: mongoose.Schema.Types.ObjectId, 
       ref: 'object' 
     } 
    }] 
}); 

var tmpIp = new Ip({ 
    ip: "5.5.5.5", 
    objects: 
    [{object:obj._id}] 
}); 

tmpIp.save(); 

DB.update({name: 'xxxx'},{$push: {ips:{tmpIp}}},{upsert:true},function(err){ 
     if(err){ 
       console.log(err); 
     }else{ 
       console.log("Successfully added"); 
     } 
}); 

では(のみ_idが作成された実行します例3行)。これに加えて、作成されたIDはIPSテーブル上の実際のipとは関係ありません。

"ips" : [ 
     { 
      "ip" : ObjectId("57d12ddf16a6f6fc175fbfb5"), 
      "_id" : ObjectId("57d12ddf16a6f6fc175fbfbc") 
     }, 
     { 
      "ip" : ObjectId("57d12ddf16a6f6fc175fbfb7"), 
      "_id" : ObjectId("57d12ddf16a6f6fc175fbfbb") 
     }, 
     { 
      "_id" : ObjectId("57d12defd5cc02b810601bb4") 
     } 
] 

私が到達しようとしている結果は、最初の2行のようなものです: ip - 作成したIPオブジェクトのオブジェクトID _idだけでなく_id

+0

IPコレクションのコンテンツを表示します。 tmpIpオブジェクトの作成方法を確認する必要があります。 – notionquest

+0

{ "_id":のObjectId( "57d12ddf16a6f6fc175fbfb5")、 "IP": "1.1.1.1"、 "オブジェクト":[ { "オブジェクト" のObjectId( "57d12ddf16a6f6fc175fbfb2")、 "_id": ObjectId( "57d12ddf16a6f6fc175fbfb6") } ]、 "__v":0 } – user1874773

答えて

0

おかげで、すべての

のみ欠けているものはIPを追加することでした(何らかの理由で私はしませんでした)太字を見てください。

PhishingDB.update({url: urlReq},{$push: {ips:{**ip**:tmpIp}}},{upsert:true},function(err){ if(err){ console.log(err); }else{ console.log("Successfully added"); } });

関連する問題