I’m relatively new to MongoDB and having trouble with a more advanced upsert. I’ve been Googling and reading the documentation but having trouble knowing exactly what I’m looking for. Basically I’m creating a hit counter which will store data for multiple domains.
My document structure is:
{
"domain": "example.com",
"hitCount": 1,
"urls": [
{
"url": "/the-url",
"hitCount": 1,
"hits": [
{
"date": "2011-10-30T04:50:01.090Z",
"IP": "123.123.123.123"
}
]
}
]
}
My upsert code so far is:
{
$set: {"domain": "example.com"},
$inc: {"hitCount": 1},
$addToSet: {"urls": {"url": "/the-url"} }
}
This bits working great but as you can see its only the first part of the upsert. I’m having trouble inserting the rest of the data inside “urls” such as incrementing the “hitCount” and adding the “date” and “IP” of the hit.
I was wondering if this document structure is possible in one upsert? I’m starting to think I need to do multiple queries to achieve this?
You must perform multiple queries.