1

在对 mongodb 的非 Meteor 服务器端调用中,可以对数据库进行以下链式选项调用

    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 }} );

并且我在前面的问题 17362401 和 10959729 中描述的从 js 对象中“构建”一个正常工作的 Find Query 时遇到了问题

有人愿意帮忙吗?

4

2 回答 2

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();
于 2013-09-14T16:29:36.377 回答
0

链式模式在 Meteor 中是不可能的,无论是服务器端还是客户端。但是参数模式是通用的,您应该能够使用这些参数创建您需要的任何查询。

于 2013-09-14T16:27:12.410 回答