【问题标题】:Dynamic query in mongo with nodejs使用nodejs在mongodb中进行动态查询
【发布时间】:2018-11-02 17:13:57
【问题描述】:
dbo.collection('userinfo').find({_id:userdata.msisdn},{'_id':0,'subscriptions':1}).toArray(function(err,result){ //do something });

我想将上面的查询替换如下:

var myquery="dbo.collection('userinfo').find({_id:userdata.msisdn},{'_id':0,'subscriptions':1})";
myquery.toArray(function(){ //do something });

但第二种格式不起作用。请让我知道如何在 mongo 中使用动态查询。提前致谢

【问题讨论】:

  • 这根本行不通,因为dbocollection 等等实际上是对象而不是“字符串”。为什么您认为您实际上希望将它放在一个字符串中,因为您希望更改“字符串”的哪一部分? MongoDB 查询使用“对象”作为选项和参数,因此您可能真正需要的是“动态操作 JavaScript 对象”,但您在问题中的意图目前还不清楚。

标签: node.js mongodb


【解决方案1】:

试试这个,效果很好

dbo.collection('userinfo').find(
        { 
            _id : userdata.msisdn
        },
        {
            '_id':0,'subscriptions':1
        }).toArray(function(error ,results){
            debug(results)
        });

您可以通过

进一步使其动态化
let condition = {_id : userdata.msisdn}
let selection = {'_id':0,'subscriptions':1}
//other way of declaring    
// let selection= {}
//selection.subscriptions=1


dbo.collection('userinfo').find(condition,selection).toArray(function(error ,results){
                        debug(results)
                    });

【讨论】:

  • 已经在做。请再次阅读我的问题。
  • 我已经编辑了我的答案,你能看一遍吗
  • 感谢您的回复。但我想要完整的声明。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多