Как я могу посчитать количество просмотров каждый раз, когда мы делаем запрос к определенному идентификатору в БД? - PullRequest
0 голосов
/ 25 декабря 2018

Как я могу посчитать просмотры определенного поста в моей базе данных, когда он запрашивается пользователем (каждый пользователь просто делает один просмотр)?

const CommenTs = new Schema({
    iduser: {
        type: String,

      },
    picuser: {
         type: String,
      },
    description:{
        type: String,
        maxlength:[150,'The Username must be maximum 150 charecters'],

    },
    likescount:{
        type:Number

    },
    linkvoice:{
        type:Schema.Types.Mixed

    }
});

const NEWSModel = new Schema({
viewsCount:{
    type:Number

},
publishedBy:{
    type:String,
    required:true,

},
PublisherPic:{
    type: String,

},
PublishedData:{
    type:Date,
    default:Date.now

},
Subject:{
    type:String,
    required:true

},
Description:{
    type:String,
    required:true

},
Pics:{
    type:Array

},
Tags:{
    type:Array

},
LikesCount:{
    type:Number

},
DislikeCount:{
    type:Number

},
CommentsCount:{
    type:Number

},
Comments:CommenTs

});

Каждый раз, когда я делаю запрос, чтобы увидетьконкретные новости, каждый пользователь может сделать только один просмотр, я имею в виду, если пользователь просматривает, что для нескольких раз он только один учитывает, я хочу сохранить это число в моей БД, и когда запрос нового пользователя сделал увеличение его.

1 Ответ

0 голосов
/ 25 декабря 2018

Просто добавьте в свою новостную модель новое поле, скажем, просматриваемое. Это должен быть массив объектов, и каждый объект будет ссылаться на пользователя следующим образом:

viewedBy:[{Schema.Types.ObjectId, ref:"User"}]

Каждый раз, когдапользователь просматривает новости, вам нужно добавить этого пользователя в поле просмотра новостей, которое мы только что создали.По этой логике БД нужно будет знать, что для этого конкретного пользователя просматривались конкретные новости, тогда количество просмотров будет равно длине массива просматриваемого.Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...