user2694306
user2694306

Reputation: 4060

Mongo Get Count While Returning Whole Documents and Should Queries

I am new to Mongo and can't seem to figure out the following after reading posts and the documentation. I am executing the following query:

db.collection.find({'name':'example name'})

Which returns 14 results. I can get the count of correctly by executing:

db.collection.find({'name':'example name'}).count()

However, I want to return the full documents and the count in a single query, similar to the way Elasticsearch does. Is there anyway to do this.

Additionally, is there any equivalence to Elasticsearch's Bool should query (http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html). Essentially I would want to rank the results, so that those with attribute 'onSale=True' are returned before 'onSale=False'.

Upvotes: 0

Views: 37

Answers (1)

RAS
RAS

Reputation: 8156

I'm not sure about your second question, whether MongoDB provides some mechanism equivalent to Elasticsearch's Bool should query.

But for your 1st question, I think you can use Cursor.

var cursor = db.collection.find({'name':'example name'});

Once you've got the cursor, you can use it for getting the count in the following way:

cursor.count()

as well as for getting the documents wrapped in an array in the following way:

cursor.toArray()

For more info on cursor, please see the below mentioned link:

http://docs.mongodb.org/manual/tutorial/iterate-a-cursor/

Upvotes: 1

Related Questions