簡體   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