2017-02-18 62 views
1

我有一個位置和名稱作爲字段的集合。爲什麼mongo不會返回所有的字段?

我創建索引中包含的貓鼬的名字,

eventSchema.index({name: 'text'}); 

,當我在robomongo運行它,它返回所有12場,

db.getCollection('_event').find({"location.country":"United States"}) 

但是當我上運行此robomongo,它只返回兩個字段的值,id和位置,

db.getCollection('_event').find({$text: {$search: "2017 Honda"}},{"location.country":"United States"}) 

回答

3

這是因爲您弄丟你的其他查詢表達式,指定其作爲投影因此,你所得到的投影有兩個領域:

db.getCollection('_event').find(
    {$text: {$search: "2017 Honda"}}, // <-- query part 
    {"location.country":"United States"} // <-- projection part 
) 

你需要將它移動到查詢對象爲:

db.getCollection("_event").find(
    { 
     "$text": { "$search": "2017 Honda" }, 
     "location.country": "United States" 
    } 
) 

這是隱式$and表達,並且還可以顯式指定爲

db.getCollection("_event").find(
    { 
     "$and": [ 
      { "$text": { "$search": "2017 Honda" } }, 
      { "location.country": "United States" } 
     ] 
    }   
) 
-1
db.getCollection('_event').find({ 
    $text: {$search: "2017 Honda"}, 
    "location.country":"United States" 
}, 
{ 
    "location":1, 
    "_id":0 // -- here we specify required fields. 1 is showing, 0 is not showing 
}); 
相關問題