在名为 user_notifications 的数据库中,每个用户都有一个用户ID集合。
对于每个集合,应该有一个包含计数器列默认设置为0的静态文档。
在一个简单的方法调用中,我需要将计数器值增加1,作为MongoDB中的新手我认为我搞砸了。需要一些想法,这是我的目标,那样做:
private function increment_notification()
{
// database => notification
// collection => _238
// document => unseen_counter
$unseen = $this->notification->_238->unseen_counter; // selecting a single document
// if the document didn't exists then create the document and
// set a default value 0 to the counter row.
if(!$unseen) {
// create a new document
$this->notification->insertOne([
'_id' => 'unseen_counter',
'counter' => '0'
]);
} else {
// we already have the document
// now update the counter value by 1
$unseen->update([
'$set' => [
'counter' => $unseen['counter'] + 1;
]
]);
}
}
我最终将此方法编写为伪代码:[
作为MongoDB的初学者,我的架构设计如何?有什么建议让它更好吗? 另外,我应该如何运行上述查询?
由于
答案 0 :(得分:0)
另一种方法是使用$inc
运算符。 $inc
documentation and example为https://jsfiddle.net/w71t2247/12/。