При создании нового документа в ravendb имя коллекции отсутствует в метаданных, а документ помечается как @empty collection - PullRequest
3 голосов
/ 13 апреля 2019

Я пытаюсь создать новую коллекцию в ravendb, используя клиент узла apollo.Хотя документ создан и хранится в ravendb, значение «collection» из метаданных отсутствует.И в результате документ хранится в коллекции @empty.Интересно, что мне не хватает?

Ответы [ 2 ]

3 голосов
/ 14 апреля 2019

Я нашел решение.Эта проблема возникла из-за того, что я пытался передать на лету объект Json типа интерфейса, в то время как требуется передать объект класса, реализующий интерфейс.RavenDB использует имя класса объекта для установки идентификатора и организации документов по коллекциям.

2 голосов
/ 02 мая 2019
  1. Если вы используете Литералы объектов для сохраняемых сущностей, вам необходимо установить findCollectionNameForObjectLiteral() на DocumentStore, прежде чем вызывать initialize()
const store = new DocumentStore(urls, database);
store.conventions.findCollectionNameForObjectLiteral = entity => entity["collection"];
// ...
store.initialize();

Это необходимо сделать до вызова initialize () для экземпляра DocumentStore.
В противном случае объекты создаются в коллекции @empty.

См. https://github.com/ravendb/ravendb-nodejs-client#using-object-literals-for-entities

Если вы используете классы для хранения сущностей, то экземпляр класса должен быть передан в store()
См .: https://github.com/ravendb/ravendb-nodejs-client#using-classes-for-entities
...