如何解决使用$ and和$ in运算符Mongodb
我有一个集合,每个文档都像这样存储
[{
...
"something" : [
{
"key" : "key1","value" : "value1"
},{
"key" : "key2","value" : "value2"
},{
"key" : "key3","value" : "value3"
}
],...
},{
...
"something" : [
{
"key" : "key1",{
"key" : "key4","value" : "value4"
},{
"key" : "key5","value" : "value5"
}
],...
}]
当我这样搜索时
db.myCollection.find({
"something.key": {
$in: ["key1","key3"]
},"something.value": {
$in: ["value1","value3"]
}
});
如果仍然匹配key1
和key3
和key4
(在此示例中为两个文档),我仍然会得到文档,我该如何仅搜索以获取元素具有{{1 }}和key1,value1
(在此情况下仅是第二个文档)
编辑#1 我已经尝试过的
key3,value3
编辑#2
找到了解决方案,但是键和值以数组的形式出现在我身上,所以"something": {
"$elemMatch": {
"key": {
$all: ["key1","key3"]
},"value": {
$all: ['value1','value3']
}
},}
{
"something.key": {$all: ["key1","key3"]},"something.value": {
$all: ['value1','value3']
},}
keys:['key1','key3']
所以我必须使用类似$ in
values: ['value1','value2']
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。