我正在尝试将mongoDB选择器存储在mongoDB集合中,以便进行动态数据分析。
但是当我尝试存储更复杂的选择器时,包括$
- 前缀表达式,如下所示(从Meteor / JavaScript运行):
filterBy:
foo:
$ne: "bar"
我收到此错误:
key $ne must not start with '$'
是否有正确的方式来存储mongoDB选择器,还是我必须构建一些逻辑来替换和反向替换对象中的所有$
?
答案 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