MongoDBでの検索方法で困っています。
深い階層をもつデータベースで、どの階層でも同じ名前のフィールド名をもてるようにした場合の検索はできるのでしょうか
例)
db.test.insert({"hoge":0,"co":{"no":1,"type":1,"foo":2,"co":{"no":2,"lee":1}}})
db.test.insert({"no":1,"hoge":0,"co":{"no":3,"type":1,"lee":3,"foo":2,"co":{"no":4,"lee":1}}})
上記例のようにデータをインサートした場合、
"no"が4である"lee"の値を14にしたいと思っています
MongoDBでは、深い階層を下って"no"が4である検索の仕方を教えていただけないでしょうか
また、"no"が4である階層の"lee"の値を変える方法もご教授いただけないでしょうか
db.test.find({"no":{$exists:true}})
という検索をしてみたところ、一番上の階層に"no"というフィールドがあるドキュメントしか検索できません。(以下検索結果)
{ "_id" : ObjectId("5991ab875eb55472ee5dbdb5"), "no" : 1, "hoge" : 0, "co" : { "no" : 3, "type" : 1, "lee":3,"foo" : 2, "co" : { "no" : 4, "lee" : 1 } } }
db.test.find({"no":1})
という検索をしても、一番上の階層に"no"というフィールドがあるドキュメントしか検索できません。
db.test.find({"co.no":1})
db.test.find({"co.co.no":2})
というふうに指定すれば検索できますが、
db.test.find({"no":1})
という一回の指定で、"co.no"も"co.co.no"も"no"も同時に検索できないでしょうか
ご教授していただけないでしょうか。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/16 05:31
2017/08/16 07:32
2017/08/19 15:03