我找到了this blog post寻找组织关系的方法。我对此感到困惑的是以下语句背后的语法。我凭借javascript变量意识到,以下是可能的..
var party = {
_id: "chessparty",
name: "Chess Party!",
attendees: ["seanhess", "bob"]
}
var user = { _id: "seanhess", name: "Sean Hess", events: ["chessparty"]}
db.events.save(party)
db.users.save(user)
db.events.find({_id: {$in: user.events}}) // events for user
db.users.find({_id: {$in: party.attendees}}) // users for event
但是,在最后两行中,让我旋转的是什么,因为我在Java中尝试做的事情是这样的。所以我理解这个想法,但我想用Java实现这一点,更具体地说,是Camel / MongoDB组件。
我一直在引用the following documentation并查看" findAll"操作。所以我需要先运行一个查询来获取数组,例如" user.events"然后运行第二个查询以查找事件列表?或者有没有办法引用该领域"事件"在集合" db.user"作为" db.events"?
的查询的一部分使用单个查询对以下内容进行调整..
pseudo idea: db.events.find({_id: {$in: [db.user.events]}})
最终,我希望将其翻译成以下内容......
from("direct:findAll")
.setBody().constant("{ \"_id\": {$in :\"user.events\" }}")
.to("mongodb:myDb?database=sample&collection=events&operation=findAll")
.to("mock:resultFindAll");
我对mongodb camel组件有点新意,所以我想知道是否有任何大师已经在那里做过那样的事情?并就此问题提出任何建议。或者在没有2天的反复试验的情况下找出这个简单的问题是不可能的。?
谢谢!
答案 0 :(得分:0)
我想我已经把这个问题包起来了,现在已经有一段时间了,几周前我能够解决这个问题。
基本上我会在事件集合中存储一组userId ..
示例:
{
_id : 22bjh2345j2k3v235,
eventName : "something",
eventDate : ISODate(...),
attendees : [
"abc123",
"def098",
"etc..."
]
}
基本上将用户分配给事件。通过这种方式,我可以找到用户参与的所有事件,并且每个事件都会显示一个用户列表。
如果我想为用户查找所有事件:
from("direct:findAll")
.setBody().simple("{ \"attendees\": \"${header.userId}\" }")
.to("mongodb:myDb?database=sample&collection=events&operation=findAll")
.to("mock:resultFindAll");