我有这段代码:
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"}]}
它是一个String,因此前面的代码不会执行,因为它需要一个对象。我已经知道,我可以从String中创建对象,如
var obj={}
obj[key] = {value}
但是如何在没有键的情况下创建对象?
答案 0 :(得分:1)
要将toFind
从字符串转换为可以传递到find
的对象,请使用JSON.parse
:
toFind = JSON.parse(toFind);
答案 1 :(得分:0)
JavaScript中的所有内容都是一个对象。但是,您显然想要的是一个简单的变量:
obj[key] = value;
您在上面发布的对象的定义完全如下:
var obj = {
"position": 2,
"$or": [{
"position": {
"$lt": 20
}
}, {
"name": "whatever"
}]
};