我有一个文件结构如下所示:MongoDB的:如何创建数组中的条目,如果不存在
{
"_id" : ObjectId("58be819769f922b8427e7f10"),
"id" : "58be7a4cfc13ae51020002cc",
"source" : "facebook",
"source_id" : "b37f5e43-ea3f-46d2-b2b0-b8f55e923933",
"data" : [
{
"date" : "5/8/2016",
"topics" : [
"Vectorworks",
"Statistics",
"Flight Planning",
"HTK",
"Custom Furniture"
]
},
{
"date" : "7/22/2016",
"topics" : [
"FDR",
"NS2",
"Power Plants"
]
},
{
"date" : "12/23/2016",
"topics" : [
"LTV",
"MMS"
]
}
]
}
现在,如果我想更多topics
追加到日期"12/23/2016"
,我能做到这一点使用:
db.revision.findOneAndUpdate({id: '58be7a4cfc13ae51020002cc', data: {$elemMatch: {date: '03/17/2017'}}}, {$push: {'data.$.topics': 'java lambda'}},{upsert: true})
但是,我怎么可以添加一个新的对象,以data
数组时的日期条目不存在?
我只是mongodb入门,但看起来像这样:https://docs.mongodb.com/manual/reference/operator/update/addToSet/#up._S_addToSet –
也在这里看起来像它:http://stackoverflow.com/questions/13987365/how-to-insert-an-element-to-mongodb-internal-list –
@jeff ery_the_wind谢谢你,$ addToSet帮助我处理重复条目。但是,如何添加类似'{date:“03/18/2017”,主题:['js']}'这样的条目不存在并且'find'子句失败? –