Salah
Salah

Reputation: 953

swift parse query how to get first createdAt for each username?

How can i get First rows of createdAt for each username?

for example: backend looks like this

objectId-   username - photo   -  createdAt

5135Aer    -   name1      - image   -  2015-08-21

R35AAA     -   name6      - image   -  2015-08-21

G7356W     -   name3      - image   -  2015-08-20

E355B      -   name1      - image   -  2015-08-20

So i want the query will take all rows and skip name1 which is createdAt 2015-08-20 last one because this old row i just want new createdAt rows only for each user.

let query = PFQuery(className: "test")
        query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!)
        query.orderByDescending("createdAt")
        query.findObjectsInBackgroundWithBlock {
            (objects, error) -> Void in

            if error == nil {

                self.createdAtArray = objects!
                print(objects!.count)

I've tried this query but it will take old createdAt and i just want new createdAt for each user , And yes i have set limit to = 1 , but it will show last record not for each user! It just show one result.

Upvotes: 1

Views: 873

Answers (1)

Lamour
Lamour

Reputation: 3040

So each 20 minutes from now I ask to give the recent object, so if you want query images after 50 minutes or more just change the value for timestamp.

let query = PFQuery(className: "test")
query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!)
 query.orderByDescending("createdAt")
 var timeStamp = NSDate(timeIntervalSinceNow: -1200)
 query.whereKey("createdAt", greaterThanOrEqualTo: timeStamp)
 query.findObjectsInBackgroundWithBlock { (objects:[AnyObject]?, error:NSError?) -> Void in
if error == nil
{
    if let objects = objects as? [PFObject]
    {

        for one in objects
        {
            var Getimage = one["image"] as! PFFile
             Getimage.getDataInBackgroundWithBlock({ (data:NSData?, error:NSError?) -> Void in

                var image = UIImage(data: data!)
                // you have the image now
                createdAtArray.addObject(image!)

            })

          }
      }
  }

 }

Second Option : To get the last object from parse use **getFirstObject method

 func secondQuery(arraydetails:NSMutableArray){
   var query = PFQuery(className: "")
  query.orderByDescending("createdAt")
  query.limit = 1
  query.getFirstObjectInBackgroundWithBlock { (object:PFObject?, error:NSError?) -> Void in

    if error == nil
    {
        var detail = object?.objectForKey("text") as! String
         arraydetails.addObject(detail)
    }

   }

  }

Upvotes: 1

Related Questions