mongodb - 为 meteor 构建动态 mongo 查询

标签 mongodb meteor mongodb-query

我正在构建一个具有可点击“过滤器”的应用程序;我正在创建一个对象列表(?),我想将其传递给 mongo“查找”,以便在所选属性与特定分数匹配时可以提取列表。

我的数据结构如下(片段):

    name: 'Entry One',
    location: {
      type: 'Point',
      coordinates: [-5.654182,50.045414]
    },
    dogs: {
      score: '1',
      when: 'seasonal',
      desc: 'Dogs allowed from October to April'
    },
    lifeguard: {
      score: '1',
      when: 'seasonal',
      desc: 'A lifeguard hut is manned between April and October',
      times: ''
    },
    cafe: {
      score: '1',
      name:'Lovely cafe',
      open:'seasonal'
    }, ...

我的搜索变量是我分配给 session 变量的对象列表(我认为?)。如果我通过 JSON.stringify 输出此 session var ('searchString'),它看起来像这样:

{"cafe":{"score":"1"},"dogs":{"score":"1"}} 

我想将其传递给我的 mongo find ,以便它只列出与这些属性上的这些分数匹配的条目,但它返回零结果。我是否需要以某种方式使其成为 $and 查询?

目前看起来像这样:

Beaches.find(searchString);

不幸的是,一旦我将 searchString 放入查找中,即使它是空的 {},我也得到零结果。 (当它只是一个 find() 时,条目列表很好,所以数据本身没问题)

我做错了什么?我对 mongo/meteor 比较陌生,所以如果这是愚蠢的明显的事情,我提前道歉!

最佳答案

不要对查询进行字符串化。相反,将物体压平。示例:

Beaches.find({
  "cafe.score": 1,
  "dogs.score": 1,
});

关于mongodb - 为 meteor 构建动态 mongo 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909720/

相关文章:

mongodb - Mongo 用另一个次级排序订购 $near

mongodb - 按字节大小对 MongoDB 文档进行排序

java - 使用 Java 从 mongodb 中检索数组值

linux - Debian Linux 脚本。重启MongoDB

javascript - 我的 meteor 插入无法与点击事件一起工作,但没有错误可供我调试

meteor - Apollo:从 cron 作业调用变异服务器端?

meteor - 如何获取 Meteor 中的可用发布列表

node.js - 使用索引时MongoDB查询排序超出内存限制

mongodb - 在 MongoDB 聚合期间拆分字符串

MongoDB 聚合时间序列