mongodb - 使用自引用对象在集合中搜索

标签 mongodb

我有一个收藏:

{
_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:

  1. 按名字查询并获取结果( parent )
  2. 对于每个获取的文档,再次查询并获取所有 _idparentId 匹配的文档(子项)

解决方案 2:

除了parentId之外,还保存每个文档中父级name的名称,并直接查询parentName

关于mongodb - 使用自引用对象在集合中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269162/

相关文章:

ruby - 通过保留顺序的 ids 检索 mongo 文档列表

javascript - MongoDB,如果新值不为空,则更新集合字段

linux - mongodb的默认安装目录在哪里

mongodb - 通过 Grails 域标准在事件光标中发现 Mongo CursorNotFound 异常

java - spring data mongodb - 日期聚合

c# - mongodb中的数据引用

node.js - 项目双嵌套数组mongodb

node.js - 如何根据填充中的多个条件过滤 Mongoose 中的结果?

MongoDB:如何使用单个命令更新多个文档?

node.js - 将扩展 JSON 与 node.js mongodb native 驱动程序一起使用