def get(self, uid=None):
     """
     获取通知,传入 uid: str 来指定获取用于指定用户的通知,缺省 uid=None 获取所有通知
     """
     notices = []
     for r in self.collection.find() or []:
         n = Notice().from_dict(r)
         if n.is_expired():
             self.drop_expired(n)
         if uid == None or n.is_for_user(uid):
             notices.append(n.dumps())
     return notices
    def drop_expired(self, notice=None):
        """
        调用 `nu.drop_expired()` 将清除数据库中所有过期的通知

        调用 `nu.drop_expired(notice)` 将删除数据库中 nid = notice.nid 的一条通知,(这是用来支持 `nu.drop_expired()` 的工作的,也可以用来删除通知,但不推荐使用)
        """
        if isinstance(notice, Notice):
            self.collection.delete_one({"nid": notice.nid})
        else:
            for r in self.collection.find() or []:
                n = Notice().from_dict(r)
                if n.is_expired():
                    self.drop_expired(n)