[英]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.