簡體   English   中英

mongodb:使用$ in運算符的collection.find不返回任何內容

[英]mongodb: collection.find with $in operator doesn't return anything

我有一個mongodb查詢問題。

目前我表演

collection.find({ "history.data": { "key": "paymentStatus", "value": { 
$in: ["fail1", "fail2", "fail3", "fail4", "fail5", "fail6", "fail7", 
"blocked"] } } })

但它沒有返回我想要的對象,實際上它返回了一個空數組。

對象的結構如下:

{history: {time: ... , data: [ {key: "paymentStatus", value: "fail1"}, ... ] }}

這是嵌套mongodb find查詢的正確語法嗎?

您查詢的正確語法如下:

collection.find({ 
  "history.data": { 
    $elemMatch: {
      "key":"paymentStatus", 
      "value": { $in: ["fail1","fail2","fail3","fail4","fail5","fail6","fail7", "blocked"]}
    }
  }
})

如果您只有一個查詢條件而不是兩個,則可以編寫以下內容:

collection.find({ "history.data.key":"paymentStatus"})

但是根據您的情況,您有兩個查詢條件,因此您需要使用$ elemMatch。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM