Mongodb:查询嵌套在数组中的json对象

乔纳斯M.

我对mongodb还是很陌生,有一件事我现在无法解决:
假设您有以下文档(简化):

{
   'someKey': 'someValue',
   'array'  : [
       {'name' :  'test1',
        'value':  'value1'
       },
       {'name' :  'test2',
        'value':  'value2'
       }
    ]
}

哪个查询将返回json-object,其值等于“ value2”?

这意味着,我需要这个json-object:

{
    'name' :  'test2',
    'value':  'value2'
}

当然,我已经尝试了很多可能的查询,但是没有一个返回正确的查询,例如

db.test.find({'array.value':'value2'})
db.test.find({'array.value':'value2'}, {'array.value':1})
db.test.find({'array.value':'value2'}, {'array.value':'value2'})  

有人可以帮我看看我在做什么错吗?
谢谢!

Tushar米斯拉

使用位置运算符

db.test.find(
    { "array.value": "value2" },
    { "array.$": 1, _id : 0 }
)

输出量

{ "array" : [ { "name" : "test2", "value" : "value2" } ] }

使用聚合

db.test.aggregate([
    { $unwind : "$array"},
    { $match : {"array.value" : "value2"}},
    { $project : { _id : 0, array : 1}}
])

输出

{ "array" : { "name" : "test2", "value" : "value2" } }

使用Java驱动程序

    MongoClient mongoClient = new MongoClient(new ServerAddress("localhost", 27017));
    DB db = mongoClient.getDB("mydb");
    DBCollection collection = db.getCollection("test");

    DBObject unwind = new BasicDBObject("$unwind", "$array");
    DBObject match = new BasicDBObject("$match", new BasicDBObject(
            "array.value", "value2"));
    DBObject project = new BasicDBObject("$project", new BasicDBObject(
            "_id", 0).append("array", 1));

    List<DBObject> pipeline = Arrays.asList(unwind, match, project);
    AggregationOutput output = collection.aggregate(pipeline);

    Iterable<DBObject> results = output.results();

    for (DBObject result : results) {
        System.out.println(result.get("array"));
    }

输出

{ "name" : "test2" , "value" : "value2"}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongodb:查询嵌套在数组中的json对象

来自分类Dev

使用python打印嵌套在数组中的json对象

来自分类Dev

使用 Doctrine mongodb odm 查询嵌套在数组中的文档

来自分类Dev

Mongodb 展开数组嵌套在数组中

来自分类Dev

访问嵌套在数组内的JSON对象

来自分类Dev

我正在尝试使用json数据更新嵌套在数组中的对象中的状态...

来自分类Dev

android获取嵌套在数组中的json数组

来自分类Dev

反序列化嵌套在数组中的对象

来自分类Dev

访问嵌套在 JSON 对象中的数组中的对象值

来自分类Dev

如何从嵌套在数组对象内部的数组中删除重复的对象值?

来自分类Dev

如何在MongoDB中找到嵌套在数组深处的对象?

来自分类Dev

使用.join()无法连接嵌套在数组内部对象中的数组

来自分类Dev

使用MongoDB和C#在数组中查询深度嵌套的对象

来自分类Dev

如何在mongodb集合中搜索嵌套在数组中的字典键

来自分类Dev

如何通过其键之一的值访问嵌套在数组中的对象?

来自分类Dev

如何合并具有相同ID的对象和嵌套在数组中的对象对应的数组对象

来自分类Dev

计算嵌套在数组中的可观察数组的和

来自分类Dev

在mongodb中查询嵌套的json对象

来自分类Dev

如何使用NSDictionary收集嵌套在数组中的JSON数据

来自分类Dev

如何在mongoDB中查询存储在数组中的对象

来自分类Dev

遍历嵌套在JSON中的Results数组

来自分类Dev

通过猫鼬删除嵌套在数组中的文档

来自分类Dev

替换嵌套在数组中的哈希的键值

来自分类Dev

使用Firebase获取嵌套在数组中的数据

来自分类Dev

Ruby-拒绝嵌套在数组中的哈希

来自分类Dev

将AnyObject转换为嵌套在数组中的Dictionary

来自分类Dev

嵌套在数组中的Javascript代表问题

来自分类Dev

嵌套在数组中的 Ruby Sinatra 哈希

来自分类Dev

将Python字典对象转换为JSON,但将JSON嵌套在父数组中

Related 相关文章

  1. 1

    Mongodb:查询嵌套在数组中的json对象

  2. 2

    使用python打印嵌套在数组中的json对象

  3. 3

    使用 Doctrine mongodb odm 查询嵌套在数组中的文档

  4. 4

    Mongodb 展开数组嵌套在数组中

  5. 5

    访问嵌套在数组内的JSON对象

  6. 6

    我正在尝试使用json数据更新嵌套在数组中的对象中的状态...

  7. 7

    android获取嵌套在数组中的json数组

  8. 8

    反序列化嵌套在数组中的对象

  9. 9

    访问嵌套在 JSON 对象中的数组中的对象值

  10. 10

    如何从嵌套在数组对象内部的数组中删除重复的对象值?

  11. 11

    如何在MongoDB中找到嵌套在数组深处的对象?

  12. 12

    使用.join()无法连接嵌套在数组内部对象中的数组

  13. 13

    使用MongoDB和C#在数组中查询深度嵌套的对象

  14. 14

    如何在mongodb集合中搜索嵌套在数组中的字典键

  15. 15

    如何通过其键之一的值访问嵌套在数组中的对象?

  16. 16

    如何合并具有相同ID的对象和嵌套在数组中的对象对应的数组对象

  17. 17

    计算嵌套在数组中的可观察数组的和

  18. 18

    在mongodb中查询嵌套的json对象

  19. 19

    如何使用NSDictionary收集嵌套在数组中的JSON数据

  20. 20

    如何在mongoDB中查询存储在数组中的对象

  21. 21

    遍历嵌套在JSON中的Results数组

  22. 22

    通过猫鼬删除嵌套在数组中的文档

  23. 23

    替换嵌套在数组中的哈希的键值

  24. 24

    使用Firebase获取嵌套在数组中的数据

  25. 25

    Ruby-拒绝嵌套在数组中的哈希

  26. 26

    将AnyObject转换为嵌套在数组中的Dictionary

  27. 27

    嵌套在数组中的Javascript代表问题

  28. 28

    嵌套在数组中的 Ruby Sinatra 哈希

  29. 29

    将Python字典对象转换为JSON,但将JSON嵌套在父数组中

热门标签

归档