/ / Jak przechowywać selektory mongoDB w mongoDB z Meteor - mongodb, meteor

Jak przechowywać selektory mongoDB w mongoDB z Meteor - mongodb, meteor

Próbuję przechowywać selektory mongoDB w kolekcji mongoDB, aby przeprowadzić dynamiczną analizę danych. Ale kiedy próbuję przechowywać bardziej złożone selektory, w tym $-prefiksowane wyrażenia, takie jak następujące (uruchamiane z Meteor / JavaScript):

filterBy:
foo:
$ne: "bar"

Otrzymuję ten błąd:

key $ne must not start with "$"

Czy istnieje właściwy sposób przechowywania selektorów mongoDB lub czy muszę zbudować logikę, aby zastąpić i odwrócić wszystkie $ w obiekcie?

Odpowiedzi:

0 dla odpowiedzi № 1

Jak wspomniano powyżej, pytanie ma odpowiedziano do celów ogólnych. Przedstawię tutaj rozwiązanie specyficzne dla Meteora.

Za pomocą Haki do kolekcji Meteor Dodałem automatyczną konwersję przy zapisie:

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

A potem używam zwykłego transform aby przekonwertować to z powrotem:

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