visit2shobhit
visit2shobhit

Reputation: 343

Getting last row in mongodb

I am using find() function in mongodb and got a record in following format

Array
(
    [_id] => MongoId Object
        (
            [$id] => 52a561ea78e9288b568b4567
        )

    [friendID] => 1
    [name] => Shobhit Srivastav
    [senderID] => 2
    [receiverID] => 1386570218
    [receiverType] => TW
    [receiverUserID] => 3
    [status] => 0
)

Array
(
    [_id] => MongoId Object
        (
            [$id] => 52a5623178e928d8568b4567
        )

    [friendID] => 2
    [name] => Sachin Tendulkar
    [senderID] => 2
    [receiverID] => 1386570289
    [receiverType] => TW
    [receiverUserID] => 3
    [status] => 0
)

but I want record of last row which are inserted in the table. how can I find??

Thanks in advance!!

Upvotes: 0

Views: 7194

Answers (1)

Sergey Berezovskiy
Sergey Berezovskiy

Reputation: 236188

If you want to get last record inserted in the table, then sort by ObjectId in descending order:

sorting on an _id field that stores ObjectId values is roughly equivalent to sorting by creation time.

and get first record:

db.collection.find().sort( { _id : -1 } ).limit(1);

With php driver it will look like

$doc = $collection->find()->sort(array("_id" => -1))->limit(1)->getNext();

Upvotes: 5

Related Questions