![](/img/trans.png)
[英]Mongodb: Find all documents where at least one array element does not matches?
[英]How to query all documents where array field have at least one object-element with property equal 'X'?
我有一些像這樣的 MongoDB 文件:
{
"group": "P32666",
"order": [{
"_id": {
"$oid": "5e8e9b40e7999f6b90fd88bf"
},
"name": "Dmitriy A",
"login": "example",
"password": "example",
"email": "example",
"level": "user",
"uuid": "b6a19744-bb20-4d39-9e1e-0ca5b464f890"
}, {
"_id": {
"$oid": "5e8ea03f5a21c26b90983de4"
},
"name": "Dmitriy B",
"login": "example",
"password": "example",
"email": "example",
"level": "user",
"uuid": "556924c3-605c-44cc-8a26-d32f58222e89"
}, {
"_id": {
"$oid": "5e8ea0645a21c26b90983de5"
},
"name": "Dmitriy C",
"login": "example",
"password": "example",
"email": "example",
"level": "user",
"uuid": "aef00707-ef00-4ce9-918b-5cef17e7280b"
}]}
我在 Mongoose 中使用 Mongo 並且無法理解如何查詢字段(數組)“訂單”在其中字段中至少有一個 object 的所有文檔(如上),例如,“登錄”對“示例”。 我怎樣才能做到這一點?
我試過這樣的事情:
export async function getQueues(request: Request, response: Response) {
const returningQueues = await queues.find({order: [login: request.params.login]});
response.json(returningQueues);
但是 TypeScript 錯誤(56 個“用戶”類型的缺失屬性(主要是內部貓鼬),我存儲在一個數組中)說我的想法是錯誤的。
如果您在數組字段上只有一個條件,您可以簡單地執行以下操作:
queues.find({"order.login": request.params.login})
但是如果你有多個條件,你可以使用$elemMatch :
queues.find({
order: { $elemMatch: { login: request.params.login, name: request.params.name } }
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.