Snažím sa ukladať voliče mongoDB do kolekcie mongoDB, aby ste mohli vykonávať dynamickú analýzu dát. Ale keď sa pokúšam ukladať zložitejší výber, vrátane $
-prefixed výrazy, ako sú nasledujúce (bežal z Meteor / JavaScript):
filterBy:
foo:
$ne: "bar"
Mám túto chybu:
key $ne must not start with "$"
Existuje a riadny spôsob uloženia voličov mongoDB alebo musím vytvoriť nejakú logiku na nahradenie a nahradenie všetkých $
v objekte?
odpovede:
0 pre odpoveď č. 1Ako už bolo spomenuté vyššie, otázka je bolo zodpovedané na všeobecné účely. Načrtám tu riešenie špecifické pre Meteor.
Použitím Meteor Collection Hooks Pridal som automatickú konverziu po uložení:
FilterCollection.before.insert (userId, doc) ->
if doc.filterBy?
doc.filterBy = JSON.stringify doc.filterBy
A potom používam pravidelné transform
previesť ho späť:
FilterCollection = new Meteor.Collection "filters",
transform: (document) ->
if document.filterBy?
document.filterBy = JSON.parse document.filterBy