如何使用Meteor在mongoDB中存储mongoDB选择器

时间:2014-09-04 15:05:41

标签: mongodb meteor

我正在尝试将mongoDB选择器存储在mongoDB集合中,以便进行动态数据分析。 但是当我尝试存储更复杂的选择器时,包括$ - 前缀表达式,如下所示(从Meteor / JavaScript运行):

filterBy:
  foo:
    $ne: "bar" 

我收到此错误:

key $ne must not start with '$'

是否有正确的方式来存储mongoDB选择器,还是我必须构建一些逻辑来替换和反向替换对象中的所有$

1 个答案:

答案 0 :(得分:0)

如上所述,问题有been answered用于一般目的。我将在此概述一个特定于流星的解决方案。

使用Meteor Collection Hooks我在保存时添加了自动转换功能:

FilterCollection.before.insert (userId, doc) ->
  if doc.filterBy?
    doc.filterBy = JSON.stringify doc.filterBy

然后我使用常规transform将其转换回来:

FilterCollection = new Meteor.Collection "filters",
   transform: (document) ->
     if document.filterBy?
        document.filterBy = JSON.parse document.filterBy