MongoDB的:由内含价值发现 [英] mongoDB: find by embedded value

查看:109
本文介绍了MongoDB的:由内含价值发现的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些问题的MongoDB,我找了一个答案,但我无法找到任何东西
该解决我的问题....

I have some problems with mongoDB, i looked for an answer but i couldn't find anything that solves my problem....

db.coders.save( {
'name': 'John', 
'languages' : { 'php':'bad','java':'good','brainfuck':'very bad'} 
});

db.coders.save( {
'name': 'Sarah', 
'languages' : { 'php':'good','java':'bad','brainfuck':'very bad'} 
});

db.coders.save( {
'name': 'Tom', 
'languages' : { 'php':'very good','java':'good','brainfuck':'bad'} 
});

现在我想找到任何codeR,知道任何语言非常好......怎么样?

now i want to find any coder that knows any language 'very good'...how?

推荐答案

您找不到它,因为它是不可能的。搜索运营商没有工作在您提供的架构。

You could not find it because it is impossible. None of the search operators works on the schema you provided.

最简单的解决方法是改变模式一点点:

The easiest workaround is to change schema a little bit:

db.coders.save( {
'name': 'John', 
'languages' : [ { n: 'php', v: 'bad'},{n:'java', v: 'good'},{n : 'brainfuck', v: 'very bad'}] 
});

在这种情况下,可以使用以下查询查询数据

In such a case you can query the data using the following query:

db.coders.find({'languages.v' : 'good'})

这篇关于MongoDB的:由内含价值发现的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆