【问题标题】:CoffeeScript Mongodb variable passingCoffeeScript Mongodb 变量传递
【发布时间】:2012-10-18 16:42:15
【问题描述】:
db.collection('database_name')
  .find( { 'active':true, 'iOS':true} )
  .toArray (err, dbDocs) ->

返回一个结果集。

然而,

deviceName = 'iOS'
db.collection('database_name')
  .find( { 'active':true, deviceName:true} )
  .toArray (err, dbDocs) ->

没有用。

deviceName是一个coffeescript字符串变量,初始化为iOSdeviceName = 'iOS'

如何传递变量deviceName

【问题讨论】:

    标签: mongodb coffeescript


    【解决方案1】:

    如果您的字段名称是动态的,则不能使用对象字面量,您必须以编程方式构建查询对象:

    query = { active: true };
    query[deviceName] = true if something;
    
    db.collection('database_name').find( query ).toArray (err, dbDocs) ->
    

    【讨论】:

    • { $and: [ { 'active':true }, {'platform': { $in : ['Android'] } } ] } 如果我必须像上面那样构建查询,并且['Android'] 是一个动态变量。怎么办?
    • 没关系。只有动态字段名称是“棘手的”,对于值,您可以使用变量。 { platform: { $in : anArrayVariable }}
    • db.collection('database_name').find( {$and: [ { active:true }, { platform: { $in : deviceName } } ] }).toArray (err, dbDocs) deviceName 对我来说是一个数组,它将在运行时填充。
    猜你喜欢
    • 1970-01-01
    • 2018-11-07
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-02
    • 2021-04-09
    相关资源
    最近更新 更多