2017-05-09 42 views
0

我試圖創建一個貓鼬查詢對象,所以合併兩個對象作爲一個用JavaScript

let countryCondition = {}; 
searchQuery = { 
    "$text": { 
     "$search": searchString 
    } 
}; 
query = { 
    searchQuery, 
    countryCondition 
}; 
console.log('$query:', query); 

當我CONSOLE.LOG查詢,我看到輸出中的,

$query: { 
    searchQuery: { 
     '$text': { 
      '$search': '2017' 
     } 
    }, 
    countryCondition: {} 
} 

但我需要

[{ '$text': { '$search': '2017' } }, {}] 
+2

的第一個對象,也許你需要'[{「 $文本「:{ '$搜索': '2017年'}},{}]'? – Slavik

+0

@Slavik是如果其確定MongoDB的 –

回答

2

正如Slavik提到的,您可能正在尋找一個ar而不是對象:

[{ '$text': { '$search': '2017' } }, {}] 

因爲對象必須具有其參數的名稱。

試試這個:

let query = [ 
    searchQuery, 
    countryCondition 
]; 
1

如果你真的需要一個使用Object.assign

let countryCondition = { 
 
    country: 'Spain' 
 
}; 
 

 
let searchQuery = { 
 
    '$text': { 
 
     '$search': 'sometext' 
 
    } 
 
}; 
 

 
let query = Object.assign(searchQuery, countryCondition); 
 

 
console.log(query);

0

的對象合併如果找你找一個或條件你的目標應該像

{ $or: [ { text: "search text" }, { country: "xyz" } ] } 

如果找你找一個和條件,那麼你可以結合以下迭戈的回答兩個對象

{text : {}, country : {}} 

你可以像

let query = {}; 
query['$or'] = []; 

query['$or'].push({'text' : 'some text'}); 
query['$or'].push({'country' : 'xyz'});