我正在尝试使用 apollo 节点客户端在 ravendb 中创建一个新集合。尽管文档是在 ravendb 中创建和存储的,但元数据中的“集合”值丢失了。因此,文档存储在 @empty 集合下。想知道我错过了什么。
2 回答
3
我找到了解决方案。这个问题是因为我试图传递一个接口类型的动态 Json 对象,而它需要传递一个类的对象,实现接口。RavenDB 使用对象的类名来设置 id 并在集合下组织文档。
于 2019-04-14T09:56:51.267 回答
2
- 如果您使用Object Literals来存储实体,那么您需要
findCollectionNameForObjectLiteral()
在DocumentStore
调用之前设置initialize()
const store = new DocumentStore(urls, database);
store.conventions.findCollectionNameForObjectLiteral = entity => entity["collection"];
// ...
store.initialize();
这必须在 DocumentStore 实例上的 initialize() 调用之前完成。
否则,将在 @empty 集合中创建实体。
请参阅https://github.com/ravendb/ravenb-nodejs-client#using-object-literals-for-entities
- 如果您使用类来存储实体,则必须将类的实例传递给
store()
查看:https ://github.com/ravendb/ravendb-nodejs-client#using-classes-for-entities
于 2019-05-02T07:52:33.730 回答