我的文档中有以下结构:
{
"_id": 11111,
"user": "user@mail.com",
"sites": [
{
"sitename": "site1",
"url": "site2.com",
"keywords": [],
},
{
"sitename": "site2",
"url": "site2.com",
"keywords": [],
},
{
"sitename": "site2",
"url": "site2.com",
"keywords": [],
},
]
},{
"_id": 2222,
"user": "user2@mail.com",
"sites": []
}
我将按ID(id:11111)找到该文档。这里有多个文件。然后我想在包含1111 _id的文档中添加新站点到sites数组。如果sitename已经有,该网站不应该添加。我怎样才能做到这一点?
答案 0 :(得分:1)
类似
db.collection.update({_id:11111, 'sites.sitename' : {$exists:false}},
{$set : {'sites.$.sitename':'newsite.com'}},{multi:true})
修改强>
如果您想为网站名称添加子文档
var sub = {'a':'a','b':'b'};
db.collection.update({_id:11111, 'sites.sitename' : {$exists:false}},
{$set : {'sites.$.sitename':sub}},{multi:true})
答案 1 :(得分:1)
更新答案:
您可以检查class DetailViewController: UIViewController {
@IBOutlet weak var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
...
let tap = UITapGestureRecognizer(target: self, action: #selector(DetailViewController.tapFunction))
label.isUserInteractionEnabled = true
label.addGestureRecognizer(tap)
}
func tapFunction(sender:UITapGestureRecognizer) {
print("tap working")
}
}
是否为' 11111',然后检查_id
是否存在并且不等于新的网站名称。然后你可以sitename
将嵌入的文档放入数组中。
$push