簡體   English   中英

如何查找其特定字段不是數組類型的文檔?

[英]how to find documents that their specific field is not in array type?

考慮以下文件:

{'name': 'A', 'link':'All'},
{'name': 'B', 'link':['All','1','2']},
{'name': 'C', 'link':['All']}

我想查找所有字段為“鏈接”且類型為“字符串”且值為“全部”的文檔。 我的意思是我不是在尋找數組類型的鏈接。 所以我想看下面的結果:

{'name': 'A', 'link':'All'}

我在下面嘗試了查詢,但沒有成功,它返回所有類型為字符串或數組均為'All'的文檔。

{link:'All',link:{$type:"string"}}

實際上,$ type運算符會在數組字段內部而不是字段本身內部查找。

這可能適合您,

通過檢查每個鏈接值的第一個元素來避免使用數組對象。

db.getCollection('yourCollection').find({'link.0': {$exists: false}, link: {$type: 2}})

類型“ 2”-表示字符串。

暫無
暫無

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

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