mogodbshell中数组对象查询修改方法
Posted qkabcd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mogodbshell中数组对象查询修改方法相关的知识,希望对你有一定的参考价值。
在mongodb中,存在如下数据
{ "_id" : ObjectId("59af55078a8fc5e51ff425de"), "title" : "title1", "col" : "col 1", "reader" : [ { "readername" : "jim", "isread" : true }, { "readername" : "ka te" }, { "readername" : "lilei" } ], "begindate" : "Wed Sep 06 2017 09:53:11 GMT +0800 (中国标准时间)" } { "_id" : ObjectId("59af552e8a8fc5e51ff425df"), "title" : "title2", "col" : "col 1", "reader" : [ { "readername" : "jim" }, { "readername" : "kate" }, { "readern ame" : "lilei" }, { "readername" : "lily" } ], "begindate" : "Wed Sep 06 2017 09 :53:50 GMT+0800 (中国标准时间)" } { "_id" : ObjectId("59af55458a8fc5e51ff425e0"), "title" : "title3", "col" : "col 1", "reader" : [ { "readername" : "jim" }, { "readername" : "kate" } ], "beginda te" : "Wed Sep 06 2017 09:54:13 GMT+0800 (中国标准时间)" }
需求1:查询栏目是col1,且读者是lily的记录:
> db.articles.find({col:‘col1‘,‘reader.readername‘:‘lily‘}) //查询结果 { "_id" : ObjectId("59af552e8a8fc5e51ff425df"), "title" : "title2", "col" : "col 1", "reader" : [ { "readername" : "jim" }, { "readername" : "kate" }, { "readern ame" : "lilei" }, { "readername" : "lily" } ], "begindate" : "Wed Sep 06 2017 09 :53:50 GMT+0800 (中国标准时间)" }
即数组中的对象用形如“数组名.字段”组成
需求2:把标题为title2,且读者为lily的已读记录‘isread’设置为true
> db.articles.update({title:‘title2‘,‘reader.readername‘:‘lily‘},{$set:{‘reader. $.isread‘:true}}) WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
{ "_id" : ObjectId("59af552e8a8fc5e51ff425df"), "title" : "title2", "col" : "col 1", "reader" : [ { "readername" : "jim" }, { "readername" : "kate" }, { "readern ame" : "lilei" }, { "readername" : "lily", "isread" : true } ], "begindate" : "W ed Sep 06 2017 09:53:50 GMT+0800 (中国标准时间)" }
核心是$,可以理解为数组定位器
83334129
以上是关于mogodbshell中数组对象查询修改方法的主要内容,如果未能解决你的问题,请参考以下文章
如何修改我的 mongodb/mongoose 查询,使其采用对象数组而不是字符串数组?