2
我目前有一組文檔,每個文檔都包含指向該集合中其他文檔的數組。我需要查詢這個集合中的嵌套數組中包含某個屬性的文檔。我希望這可以更清楚地解釋我的請求:使用貓鼬通過嵌套文檔屬性查找
if doc.list1[0].prop = 'foo' or doc.list2[0].prop = 'foo' then select doc
我試過使用.find()這樣,但無濟於事。
{
'doc.list1': 'foo',
$or: [
{ 'doc.list2': 'foo' }
]
}
我在正確的軌道上嗎?因爲我不認爲我是。這是我能從文檔中獲得的最好的結果。
編輯
下面是一個使用佈局托馬斯的建議,同我的實際查詢初始化。
var query = this.Word.find({
$or: [
{ 'before.0.cleanWord': topic },
{ 'after.0.cleanWord': topic },
{ 'cleanWord': topic }
]
});
優秀的,我無法測試到明天但這看起來很有希望。所以這將搜索數組中的每個嵌套文檔,而不僅僅是第一個? – Olical
我有點難以理解你的數據庫正在發生什麼。它是一個Object Ids數組嗎?儘管這應該是一個有效的$或查詢,但您發佈的內容始終與doc.list1 ='foo'相匹配,並且您的$或語句是無關的,因爲它只有一個元素,它更像是一個AND。 –
好的,我已經使用您對我的問題的建議追加了我當前的代碼。它仍然不會返回任何文件。仍在調試。 – Olical