查询集合中数组的其中一个元素:
最近在工作中遇到了这样的一个问题: 如何取出集合中的一个数组中的一个元素?由于本人是刚刚接触到mongoDB,经过一番查找最终还是解决了
在需要对数组中的值进行操作的时候,可通过位置或者定位操作符("$").(不要忽略这个点)数组是0开始的,可以直接将下标作为键来选择元素。
基础数据如下:
mongo语句如下:{ "_id" : ObjectId("59376d8c671056136b054bde"), "dkeyId": 103, "subjectInfo": "我爱你,无论生活给你怎样的压力都希望你能开心快乐!(来自轻轻的单元测试)", "startTime": "2017-05-01 00:00:00", "endTime": "2017-06-13 23:59:59", "isDeleted": false, "keywords": [ { "keyId": 305, "keyword": "测试随笔", "orderNo": 22, "wordType": 2, "isDeleted": false, "linkType": 3, "linkTo": "我站在天桥上,透过厚厚的玻璃,隔着289米的距离,看着你所在房间的略微有些破旧的窗户,此刻无声!" } ] }
db.getCollection('search_default_keyword').find(
{
"dkeyId":3,
"isDeleted" : true,
"keywords.keyId":103,
"keywords.isDeleted" : false
},
{
"_id":0,
"keywords.$.keyId":1
})
查询结果如下:
{ "keywords": [ { "keyId": 305, "keyword": "测试随笔", "orderNo": 22, "wordType": 2, "isDeleted": false, "linkType": 3, "linkTo": "我站在天桥上,透过厚厚的玻璃,隔着289米的距离,看着你所在房间的略微有些破旧的窗户,此刻无声!" } ] }