我是节点Js的新手,所以我很难更新(插入)一个新对象 阵列。
这是架构:
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")
}
]
我想要达到的结果就像前两行:
ip
- 创建的IP对象_id
的对象ID,而不仅仅是_id
答案 0 :(得分:0)
全部谢谢
唯一缺少的是添加ip(由于某些原因我没有)请看粗体文字。
PhishingDB.update({url: urlReq},{$push: {ips:{**ip**:tmpIp}}},{upsert:true},function(err){
if(err){
console.log(err);
}else{
console.log("Successfully added");
}
});