添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
{"$group":{"_id":{"statusRepositoryId":"$statusRepositoryId","vendorId":"$vendorId"},"count":{"$sum":1}}},{"$sort":{"_id":1}},{"$project":{"_id":false,"statusRepositoryId":"$_id.statusRepositoryId","vendorId":"$_id.vendorId","count":true}},{"$sort":{"count":-1,"statusRepositoryId":1,"vendorId":1}} {"$lookup": { "from": "StatusRepository", "localField": "statusRepositoryId", "foreignField": "_id", "as": "R" {"$unwind": "$R"}, {"$lookup": { "from": "Vendor", "localField": "vendorId", "foreignField": "_id", "as": "V" {"$unwind": "$V"}, "$project": { "Status value": "$R.status", "count":true, "vendorName":"$V.name" "vendorId":"$V._id" "$match":{"vendorId" : ObjectId("5ee07336e3647639d9b9b068")}

I want to add a field filter at the end of the query. Here I have hard-coded a value because the value is achieved by joining the tables. can we do this in Metabase. Field filter works without aliasing so how would it interpret a joined table entry? I have tried adding it but it ends up giving nothing

Hi @Anum
Mongo works very differently from other databases.
You need to move the match below the project :
https://stackoverflow.com/questions/33752817/project-with-match-in-aggregate-not-working-in-mongodb

I have already moved the match clause below the project and it works on the given hardcoded value.
VendorId is a achieved by joining two tables. and now I want a filter on vendor id using a field filter.

"$match":{"vendorid" : {{id}}}

The above does it by using the id as a text field. but i want a dropdown.

if i change it to this and make it a field filter on id in the vendor table, it fails to give me the result.

"$match":{{{id}}}

@Anum Okay, I don't know how you have configured your Field Filter, so I guess the problem is there.
I would recommend that you create a View on Mongo, so Metabase just sees a regular "table":
https://docs.mongodb.com/manual/reference/method/db.createView/

Does the filter fails to work if the category has space?
I have a category with two words separated by space.
Whenever i put in a name, it gives me an empty result.

@Anum Here's what I recommend you'll do. Enable query logging on your MongoDB, so you can see which queries it receives:
https://stackoverflow.com/questions/15204341/mongodb-logging-all-queries

@flamber It was not related to mongo. it was related to Metabase. Posting the solution so that others can get benefit.
So basically, if the case of the name matters. It should be

{ "$project": {
    "Name":"$R1.Name",
    "riderId":"$R1._id"
    "$match": {{Name}}