【问题标题】:MongoDB find in array of objectsMongoDB在对象数组中查找
【发布时间】:2015-03-04 13:20:22
【问题描述】:

我想查询 Mongodb:查找在任何对象数组项中具有 'artist'=Iowa 的所有用户。 这是我收藏的 Robomongo: 在 Python 中我正在做:

Vkuser._get_collection().find({
  'member_of_group': 20548570,
  'my_music': {
    'items': {
      '$elemMatch': {
        'artist': 'Iowa'
      }
    }
  }
}) 

但这没有返回任何内容。也试过这个: {'member_of_group': 20548570, 'my_music': {'$elemMatch': {'$.artist': 'Iowa'}}} 没有用。

这是带有数组的文档的一部分:

    "can_see_audio" : 1,
"my_music" : {
    "items" : [ 
        {
            "name" : "Anastasia Plotnikova",
            "photo" : "http://cs620227.vk.me/v620227451/9c47/w_okXehPbYc.jpg",
            "id" : "864451",
            "name_gen" : "Anastasia"
        }, 
        {
            "title" : "Ain't Talkin' 'Bout Dub",
            "url" : "http://cs4964.vk.me/u14671028/audios/c5b8a0735224.mp3?extra=jgV4ZQrFrsfxZCJf4gsRgnKWvdAfIqjE0M6eMtxGFpj2yp4vjs5DYgAGImPMp4mCUSUGJzoyGeh2Es6L-H51TPa3Q_Q",
            "lyrics_id" : 24313846,
            "artist" : "Apollo 440",
            "genre_id" : 18,
            "id" : 344280392,
            "owner_id" : 864451,
            "duration" : 279
        }, 
        {
            "title" : "Animals",
            "url" : "http://cs1316.vk.me/u4198685/audios/4b9e4536e1be.mp3?extra=TScqXzQ_qaEFKHG8trrwbFyNvjvJKEOLnwOWHJZl_cW5EA6K3a9vimaMpx-Yk5_k41vRPywzuThN_IHT8mbKlPcSigw",
            "lyrics_id" : 166037,
            "artist" : "Nickelback",
            "id" : 344280351,
            "owner_id" : 864451,
            "duration" : 186
        }, 

【问题讨论】:

  • 你知道这里限制“低声誉用户”在他们的问题中发布图片的主要原因是因为一般来说“图片不是我们想要看到的,它是‘数据’ " 基本上可以显示为文本。因此,如果您既“将数据显示为文本”又对您提出的问题提出了有效的意见,这对人们有所帮助。目前这里没有符合您要求的条件,

标签: python arrays mongodb mongodb-query


【解决方案1】:

以下查询应该有效。您可以使用点符号查询子文档和数组。

Vkuser._get_collection().find({
  'member_of_group': 20548570,
  'my_music.items.artist':'Iowa'
})

以下查询在 mongo shell 中对我有用

db.collection1.find({ "my_music.items.artist" : "Iowa" })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 2020-08-30
    • 1970-01-01
    • 2019-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多