I'm trying to use the following line through flask:
collection = 'mongo.db.vehicules.distinct("date_debut", {"modele":"Q5"})'
When I don't insert the second arguments, the query works fine.
With the second one, I have the following error:
TypeError: distinct() takes 2 positional arguments but 3 were given
The same query in Mongo shell works fine.
Anyone has faced the same issue?
Thanks
Related
Hi guys unable to copy one field value to another field in mongo db update many options, I am using mongo db 3.6, i attached my query below pls help me to overcome this issue.
db.am_task.updateMany(
{"reselleraccountid":{$exists:true}},
{$set:{"reselleraccountid":"$parantid"}}
)
Actual Results:
Expected Result
its should replace its value, not print its key name.
When I tried querying my db with Mongoid, it's not returning the same result as when I do it within the mongo shell. With mongo shell, when I do
db.scenarios.find({"test_run_id": 169926}).count()
I get 214 as a result. When I tried the following mongoid statement:
Scenario.where({'test_run_id' => 169926}).to_a.count
I get 0 as a result.
Please help.
The problem was my model.rb file specified test_run_id as type String when it should be Integer. So when the filter is executed, "169926" != 169926, therefore no match was found. The lesson here is that make sure the data type matches between your model.rb and what is actually stored.
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'.
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/
Attempting to setup / populate a basic mongo db using the shell, I get the following error message.
I have tried different databases but the error is the same. Can anyone kindly explain what I'm doing wrong?
{
"user":"bob",
"email":"bob#home.com"
}
Mon May 26 00:54:28.228
SyntaxError: Unexpected token :
Attempting to setup / populate a basic mongo db using the shell, I get the following error message.
I have tried different databases but the error is the same. Can anyone kindly explain what I'm doing wrong?
The code you mentioned is just the document itself. Check out the docs for how insert works. To insert, you should use:
db.collection.insert()
An example of an insert with the document in your example:
db.collection.insert({ "user":"bob", "email":"bob#home.com" })
Edit---
To clarify, you must replace "collection", in the above example with the name of the collection you're trying to insert into.
Also, ensure that you're using the correct database. When you connect to the shell, select your db with:
use testdb
so i created a collection called food with 2 objects that were saved no problem. Using find() yielded no issues either. However, when I entered the following:
db.food.find().sort({averageRating:-1}).select({_id: 1}).limit(2)
I get the error:
JS Error: TypeError: Object DBCursor has no method 'sort'
What am i doing wrong?
Is this what you are looking for?
db.food.find({},{_id:1}).sort({"averageRating":-1}).limit(2);
It selects only 2 id fields ordered by average rating descending.The fields that are to be returned are specified by the second parameter in find(),which in this case is _id.
select is not a valid command in mongoDb as far as I know.
It should be selector, not select. See if that fixes it.
As per shargors' comment, it looks like try.mongodb.org doesn't support sort(). I would recommend downloading and installing mongodb itself, and playing around with the real shell.