我正在编写一个应用程序,用户可以在其中写入json代码并将该json代码存储为一个Id和一个集合。换句话说,它们指定一个Id,一个Collection(字符串; [a-zA-Z0-9])和一个Data(json,可以是任何有效的json)。RavenDb存储和检索无类对象(json)
直到现在我一直在使用RavenDb,因为我认为文档数据库是完美的,但是我在查询时遇到了一些问题。
一个需要被存储和查询的目的之一是如下:
{
"network": "some_network",
"names": ["name1","name2"],
"data": {"values":[],"keys":[]}
}
此目的应存储与一些的ID或者指定,或者自动生成的(如果null
给出),和一个集合(必须始终指定),然后我需要能够根据集合,网络和单个名称来查询它。例如,我有代码query('users', '{"network":"some_network","names":"name1"}')
,我需要该代码来返回此对象(以及任何与之匹配的其他对象)。另外,我可以更改数据库,但是数据库需要能够运行进程内(自托管),并且能够在没有安装的情况下在没有管理权限的情况下运行(换句话说,无法像wcf那样绑定到主机名/ IP)。
我该如何做到这样?
你基本上运行此查询:session.Query()。凡(X => x.network == “some_network” && x.names.Any (y => y ==“name1”))。我不确定你在做什么,但是如果你使用RavenDB附带的工具,你应该没问题。 –
synhershko
是的,但问题是我在编译时不知道对象图。如前所述,用户可以制作json,但无论用户喜欢,都可以制作。 – Alxandr
和谁生成查询?如果再次是用户,请让他使用Linq。 RavenDB将在索引方面做其余的工作。 – synhershko