2013-03-01 42 views
0

我有這樣一段代碼:有沒有可能只有價值的對象?

db.collection('coders', function(err, collection) { 
     collection.find(toFind).toArray(function(err, items) { 
      res.send(items); 
     }); 

其中toFind是一樣的東西{"position":2,"$or":[{"position":{"$lt":20}},{"name":"whatever"}]} 它是一個字符串,所以前面的代碼不執行,因爲它需要一個對象。我已經知道,我可以創建對象從字符串像

var obj={} 
obj[key] = {value} 

但我怎麼能創建一個對象沒有鍵?

回答

1

toFind轉換從字符串轉換成一個對象,你可以通過到find,使用JSON.parse

toFind = JSON.parse(toFind); 
0

JavaScript中的所有內容都是一個對象。但是,你顯然需要的是一個簡單的變量:

obj[key] = value; 

你上面貼的對象將被精確定義是這樣的:

var obj = { 
    "position": 2, 
    "$or": [{ 
     "position": { 
      "$lt": 20 
     } 
    }, { 
     "name": "whatever" 
    }] 
}; 
+1

沒有,你也有基本類型,如布爾值,字符串,數字等 – 2013-03-01 13:00:50

+1

阿逢但是,這更多的是內在的東西。例如,即使是一個普通的'number'也有'Number.prototype'方法' – ThiefMaster 2013-03-01 13:02:22

+0

[(不是)JavaScript中的所有內容都是對象](http://blog.brew.com.hk/not-everything-in-javascript -is-一個對象/)。數字是基元,當你嘗試從它訪問一個屬性時,JavaScript會自動複製基元並訪問該對象包裝器的屬性。在http://stackoverflow.com/a/44042894/3966682查看我的答案 – d4nyll 2017-05-18 09:05:28