我正在使用MongoDB来存储一堆信息,并且需要搜索索引数组的值。MongoDB数组索引搜索
这里的模式:
{ "common_name" : { "name" : "thename", "type" : "thetype" } }
有文档中的其他值,但是这是唯一一个我在寻找。
所以,我估计像这样的工作:(中壳)
db.collection.find({common_name:{$in:"thename"}})
但我得不到任何回报。
这看起来就像这里所做的一样: http://www.php.net/manual/en/mongo.queries.php - 但我似乎无法得到任何回报。
我已经试过
db.collection.find({"common_name.name":"thename"}})
和它的作品如预期,但对指数(最多4个)搜索多个节点,它可能会变得非常恶劣,基本定义$或索引的每个子类,和四倍我的查询时间。因为这是一个自动补全的动力,我不能那样做。
奇怪的是,以下不返回任何证件之一:
db.collection.find({"common_name":{"name":"thename"}})
这在我的理解,是完全一样的东西上面的查询。
我对Mongo很新,所以也许我在这里错过了一些大东西?
有关如何快速访问这些数据(使用锚定正则表达式)的任何想法?
我可以只使用一个关系表,但是不会破坏像Mongo这样的NoSQL系统的目的吗?
啊,我担心这可能是问题所在。我会改变我的模式以这种方式工作。要么我误解了这里的PHP文档http://www.php.net/manual/en/mongo.queries.php,或者他们是不正确的。谢谢! – Jesse 2011-01-29 21:00:04