小程序
小游戏
企业微信
微信支付
扫描小程序码分享
比如其中一条记录的一个字段是info:[{gh:001,name:'张三',age:24},{gh:002,name:'李四',age:24},{gh:003,name:'小明',age:24}] ,怎么能以 李四的gh,检索到002呢。望大神指点
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
db.collection('todos').where({ info: _.elemMatch({ name: _.eq('李四') }) }) .get() db.collection('todos').where({ 'info.name': '李四' }) .get()
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
aggregate.unwind
同问。如主题中的例子,请问怎样查询同时满足gh的值为002并且name的值为王五这两个条件的记录的age的值呢?因为info字段是一个数组,那么可能就会有许多name的值为王五、或gh的值为002的元素,怎样去找到同时满足这两个条件的info字段中的某个元素?况且一个数据库存中也可能会包含有更多这样的info字段的记录。怎样把这些记录都列出来?
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
db.collection('todos').where({ info: _.elemMatch({ name: _.eq('李四') }) }) .get() db.collection('todos').where({ 'info.name': '李四' }) .get()
aggregate.unwind
where({'info.name':'李四'})
同问。如主题中的例子,请问怎样查询同时满足gh的值为002并且name的值为王五这两个条件的记录的age的值呢?因为info字段是一个数组,那么可能就会有许多name的值为王五、或gh的值为002的元素,怎样去找到同时满足这两个条件的info字段中的某个元素?况且一个数据库存中也可能会包含有更多这样的info字段的记录。怎样把这些记录都列出来?
.where({
info: _.elemMatch({
name: _.eq('王五'),
gh:002
})
可行。
但以下两种方法不可行:
.where({
zz:{name:_.eq('王五'),gh:002}
})
.where({
'zz.name':_.eq('王五'),
'zz.gh':002
})