在Collection.find中,如何格式化.limit,.sort,fieldlist和变量列名

时间:2013-09-14 15:52:24

标签: meteor

在非meteor Server-Side调用mongodb时,可以对数据库进行以下链式选项调用

    collection.find( { myField: { $gte: myOffset } ).limit( myLimit ).sort( { mySortField : 1 } );

可以在运行时从其他地方解析myField,myOffset,myLimit和mySortField。

此模式对于创建此类运行时生成的通用查询非常有用。

Meteor似乎坚持

的非链式选项模式
    collection.find( { { myField: { $gte: myOffset } }, { limit: myLimit, sort: { mySortField : 1 }} );

我遇到了问题,如上所述,从js对象建立一个工作的查询查询,如上所述 在之前的问题17362401和10959729

有人愿意帮忙吗?

2 个答案:

答案 0 :(得分:2)

编辑以显示变量的用法:

我是这样做的。您发送两个哈希值,其中第一个是where子句,其他所有都是对等级别键。

var locations;
var myfield = 'gps';

search = {      
  sureties: {
    $in: sureties
  }
}

search[myfield] = {
    $near: this.gps,
    $maxDistance: kilometers 
  };

locations = Agents.find(search, {
  fields: {
    name: 1,
    phone: 1
  },
  limit: limit,
  sort: { field1 : 1 }
}).fetch();

答案 1 :(得分:0)

Meteor中无法使用链式模式,无论是服务器端还是客户端。但是params模式是普遍的,你应该能够用这些参数创建你需要的任何查询。