我有一个域对象模型如下...
@document
Profile
{
**social profile list:**
SocialProfile
{
**Interest list:**
{
Interest
{
id
type
value
}
...
}
...
}
Run Code Online (Sandbox Code Playgroud)
每个简档可以具有许多社交简档,在每个社交简档中,通过特定社交简档(社交简档表示像Facebook这样的社交网络)有许多与简档相关的兴趣,每个兴趣也是具有字段id,类型,值的嵌入文档.
所以我有两个问题..我可以在嵌入式文档中单独索引几个字段吗?我可以在嵌入式文档中创建复合索引吗?
我想我的模型的复杂性是嵌入式文档的深层次,它是2 ..并且该文档的路径是通过数组......
可以通过元数据注释以spring方式完成吗?如果您认为我的模型有误,请告诉我我是mongo的新手谢谢
假设我有以下两个键的文档:
1)key1
2)key2
如果我在他们两个上创建复合索引..
{'key1':1,'key2':1}
Run Code Online (Sandbox Code Playgroud)
运行仅与key1相关的查询时,是否使用上面的索引?或者我还需要为key1创建特定的索引?
谢谢
我有问题收集每个配置文件可以有很多问题.
{"_id":"..." , "pid":"...",.....}
Run Code Online (Sandbox Code Playgroud)
使用mongo DB新聚合框架如何计算每个配置文件的平均问题数量?
尝试了以下没有成功:
{ "aggregate" : "question" , "pipeline" : [ { "$group" : { "_id" : "$pid" , "qCount" : { "$sum" : 1}}} , { "$group" : { "qavg" : { "$avg" : "qCount"} , "_id" : null }}]}
Run Code Online (Sandbox Code Playgroud)
只能由一个集团运营商完成吗?
谢谢.
我正在努力做一些应该是微不足道的事情....
我有以下个人档案文件结构:
{
pid:"profileId",
loc : {
"lat" : 32.082156661684621,
"lon" : 34.813229013156551,
"locTime" : NumberLong(0)
}
age:29
}
Run Code Online (Sandbox Code Playgroud)
我的应用中常见的用例是检索按年龄过滤的附近配置文件.
{ "loc" : { "$near" : [ 32.08290052711715 , 34.80888522811172] , "$maxDistance" : 179.98560115190784}, "age" : { "$gte" : 0 , "$lte" : 33}}
Run Code Online (Sandbox Code Playgroud)
所以我创建了以下复合索引:
{ 'loc':2d , age:1}
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我都无法使用创建的索引运行查询(也尝试使用提示)
这是查询的生成解释:
{
"cursor" : "GeoSearchCursor" ,
"isMultiKey" : false ,
"n" : 4 ,
"nscannedObjects" : 4 ,
"nscanned" : 4 ,
"nscannedObjectsAllPlans" : 4 ,
"nscannedAllPlans" : 4 , …Run Code Online (Sandbox Code Playgroud) 我需要在查询期间聚合数据,然后按此数据排序。
根据密码文档:
如果要使用聚合对结果集进行排序,则必须将聚合包含在要在 ORDER BY 中使用的 RETURN 中。
我有以下密码查询:
START profile=node(31) MATCH (profile)-[r:ROLE]->(story)
WHERE r.role="LEADER" and story.status="PRIVATE"
WITH story MATCH (story)<-[r?:RATED]-()
RETURN distinct story ,sum(r.rate) as rate ORDER BY rate DESCENDING
Run Code Online (Sandbox Code Playgroud)
上面的查询工作正常,问题是我必须在我的结果集中包含sum(r.rate)。
当查询响应应该是故事列表/页面时,我通过存储库使用Cypherdsl(我的存储库扩展了 CypherDslRepository )...
我可以使用按聚合函数排序而不将其包含在结果集中吗?
有什么解决方法吗?
谢谢。
我有以下文件结构......
{
"id":"documentID"
"sessionId":"sometext"
"msg":"sometext"
"time":"date"
}
Run Code Online (Sandbox Code Playgroud)
我想聚合文档sessionId,每个会话的结果应该包含与按时间排序的会话相关的消息集.
使用MongoDB聚合框架我该如何实现?
我试图先排序然后分组,但每个会话中的消息由于某种原因没有排序:
{ $sort: { "time": 1 } },
{ "$group" : {
"_id" : "$sessionId",
"msgs" : { "$addToSet" : "$msg" }
} }
Run Code Online (Sandbox Code Playgroud)
有什么建议?你的回答非常感谢.
mongodb ×5
indexing ×3
arrays ×1
cypher ×1
geolocation ×1
neo4j ×1
sorting ×1
spring ×1
sql-order-by ×1