我有一个收藏:
{
_id - ObjectId
name - string
location - string
..
parentId - ObjectId //link to parent object
}
我有一个过滤器查询,即使使用 int 值(在 C# 中)也能很好地工作:
var q = Query.Matches(column, new BsonRegularExpression(string.Format("/^{0}/i", name)));
我应该怎么做才能按父对象的名称进行搜索?当然,使用LINQ是没有问题的,但是可以在服务器端进行搜索吗?
最佳答案
MongoDB 中没有连接,但您基本上有两个选择:
解决方案 1:
- 按名字查询并获取结果( parent )
- 对于每个获取的文档,再次查询并获取所有
_id
和parentId
匹配的文档(子项)
解决方案 2:
除了parentId
之外,还保存每个文档中父级name
的名称,并直接查询parentName
关于mongodb - 使用自引用对象在集合中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269162/