[
{
"RollNo":1,
"name":"John",
"age":20,
"Hobby":"Music",
"Date":"9/05/2018"
"sal":5000
},
{
"RollNo":2,
"name":"Ravi",
"age":25,
"Hobby":"TV",
"Date":"9/05/2018"
"sal":5000
},
{
"RollNo":3,
"name":"Devi",
"age":30,
"Hobby":"cooking",
"Date":"9/04/2018"
"sal":5000
}
]
上面是我需要插入到MongoDB中的JSON文件。我的mongoDB集合中已经有类似的JSON数据名为``Tests'',我必须忽略已经存在的记录 根据特定条件在mongoDB中使用。
[mongoDB中的RollNo == json中的RollNo需要在mongoDB中插入&& Hobby == json中的Hobby需要在mongoDB中插入&& Date == json中的日期需要插入]
如果此条件匹配,我需要插入,否则需要将数据插入DB 。
我正在使用nodejs。有人请帮我做。
答案 0 :(得分:1)
如果您使用猫鼬,请使用https://codepen.io/pixel-lab/pen/zJdqvv?editors=1111。
db.people.update(
{ RollNo: 1 },
{
"RollNo":1,
"name":"John",
"age":20,
"Hobby":"Music",
"Date":"9/05/2018"
"sal":5000
},
{ upsert: true }
)
但是要避免多次插入同一文档,请仅使用upsert:如果查询字段具有唯一索引,则为true。
答案 1 :(得分:0)
最简单,最安全的方法是使用复合索引。 您可以这样创建复合索引:
db.people.createIndex( { "RollNo": 1, "Hobby": 1, "Date" : 1 }, { unique: true } )
然后重复的插入将产生错误,您需要在代码中进行处理。