我在使用 mongoDB 时遇到了一些问题,我寻找了答案,但找不到任何解决我问题的方法....
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'}
});
Run Code Online (Sandbox Code Playgroud)
现在我想找到任何知道任何语言“非常好”的编码员......如何?
你找不到它,因为它是不可能的。没有任何搜索运算符适用于您提供的架构。
最简单的解决方法是稍微更改架构:
db.coders.save( {
'name': 'John',
'languages' : [ { n: 'php', v: 'bad'},{n:'java', v: 'good'},{n : 'brainfuck', v: 'very bad'}]
});
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以使用以下查询来查询数据:
db.coders.find({'languages.v' : 'good'})
Run Code Online (Sandbox Code Playgroud)