Reputation: 1337
I can successfully retrieve data from my mongoDB instance but need to re-use the objectID for a depending query.
The following code seems to get my entire object but NOT the id. What am I missing?
# Perform a query and retrieve data
mongoOBj <- m$find('{"em": "[email protected]"}')
Upvotes: 6
Views: 2521
Reputation: 11
FYI So the easiest way to get all fields is to do the query with field="{}". That will overwrite the default in the mongolite:: package find() arguments list.
It was driving me nuts for a little while too.
Upvotes: 1
Reputation: 111
I realise this is an old question and OP has probably figured it out by now, but I think the answer should be
mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{}')
instead of
mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{"_id": 1}')
In the second case, the result will be a data frame containing ONLY the IDs. The first line will result in a data frame containing the queried data, including the IDs.
By default, field = '{"_id": 0}'
, meaning _id is not part of the output.
Upvotes: 11
Reputation: 8333
If you look at the documentation you see that the find
method takes a field
argument, where you specify the fields you want:
find(query = ’{}’, fields = ’{"_id" : 0}’, sort = ’{}’, skip = 0, limit = 0, handler = NULL, pagesize = NULL)
So in your case it will be something like
mongoOBj <- m$find(query = '{"em": "[email protected]"}', field = '{"_id": 1}')
Upvotes: 6