文档的结构如下:
{
"_id" : ObjectId("57302832d4c6025e3e44b1bc"),
"_class" : "com.sumridge.smart.entity.CompanyInfo",
"accountInfos" : [
{
"_class" : "com.sumridge.smart.entity.AccountInfo",
"_id" : ObjectId("57302848d4c6025e3e44b1be"),
"portfolios" : [
{
"title" : "test1",
"list" : [
{
"_class" : "com.sumridge.smart.entity.PortfolioInfo",
"cusip" : "001",
"quantity" : 100,
"price" : 9.5
}
]
}]
}
]
}
我现在要向accountInfos数组下匹配到的accountInfo对象的portfolios的属性中增加一个文档,这里portfolios也是一个数组。
我的代码如下:
db.companyInfo.update(
{"accountInfos._id":ObjectId("57302848d4c6025e3e44b1be")},
{$addToSet:
{
"accountInfos.$.portfolios":
{
title:"test_11",
list:{cusip:"001",quantity:1,price:1}
}
}
}
)
这样我就能对子文档中的数组进行插入操作,我想问的问题就是accountInfos.$.portfolios中的$的含义和作用是什么。
Mongodb中"$"的的含义是什么,示例如下:
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- oyljerry 2016-12-19 06:07关注
The positional $ operator identifies an element in an array to update without explicitly specifying the position of the element in the array. To project, or return, an array element from a read operation, see the $ projection operator.
The positional $ operator has the form:
{ ".$" : value }
When used with update operations, e.g. db.collection.update() and db.collection.findAndModify(),the positional $ operator acts as a placeholder for the first element that matches the query document, and
the array field must appear as part of the query document.解决 无用评论 打赏 举报
悬赏问题
- ¥15 python天天向上类似问题,但没有清零
- ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
- ¥15 C#调用python代码(python带有库)
- ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
- ¥15 活动选择题。最多可以参加几个项目?
- ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
- ¥15 vs2019中数据导出问题
- ¥20 云服务Linux系统TCP-MSS值修改?
- ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
- ¥20 怎么在stm32门禁成品上增加查询记录功能