繁体   English   中英

评估javascript对象是否与mongo查询匹配?

[英]Evaluating whether a javascript object matches a mongo query?

我们有一个应用程序,我们在Mongo数据库中存储两种类型的文档:

  • contacts ,基本上代表人
  • filters ,本质上是一个存储的MongoDB查询,代表用户的“已保存搜索”。

以下是数据模型的简化版本:

contacts: [
  { id: 1, name: 'Phil', age: 40 },
  { id: 2, name: 'Bob', age: 34 }
]

filters: [
  { query: { name: 'Phil' } }
  { query: { age: { &gt: 30 } } }
]

给定一个过滤器,列出与该过滤器匹配的所有联系人相对容易:

db.contacts.find(filter.query);

找到与某个联系人匹配的所有过滤器更难。 现在我们有以下内容:

matchedFilters = []

_.each(filters, function(filter) {
  if (db.contacts.find(_.extend(filter.query, {id: contact_id}).length > 0) {
    matchedFilters.push(filter.id)
  }
});

基本上,我们需要单独向mongo询问每个过滤器。 这导致对Mongo的大量查询。

在我们评估此查询时,我们会获得有关我们要查找的联系人的所有相关信息。 有没有办法将Mongo查询语法应用于内存中的Javascript对象而无需向Mongo询问它?

或者,有没有办法让Mongo在一次往返中进行大量的查询?

看看sift.js。 我想,这正是你要找的。

这是一篇关于它的博客文章

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM