У меня есть следующая структура для моих документов Mongodb, и, как вы увидите, у меня есть 3 URL-адреса, каждый из которых имеет crawled
, установленный в True
или False
.MongoDB - Возврат определенных полей документа
{
"_id": {
"$oid": "573b8e70e1054c00151152f7"
},
"domain": "example.com",
"good": [
{
"crawled": true,
"added": {
"$date": "2016-05-17T21:34:34.485Z"
},
"link": "/threads/11005-Cheap-booze!"
},
{
"crawled": false,
"added": {
"$date": "2016-05-17T21:34:34.485Z"
},
"link": "/threads/9445-This-week-s-voucher-codes"
},
{
"crawled": false,
"added": {
"$date": "2016-05-17T21:34:34.485Z"
},
"link": "/threads/9445-This-week-s-voucher-codes_2"
}
],
"link_found": false,
"subdomain": "http://www."
}
Я пытаюсь вернуть определенные поля, где возвращаются только те URL с crawled
установлен False
, для этого я следующий запрос:
.find({'good.crawled' : False}, {'good.link':True, 'domain':True, 'subdomain':True})
Однако то, что возвращается против того, что ожидается, отличается, поскольку это возвращение всех URL-адресов, независимо от того, имеют ли они crawled
статус True
или False
Что возвращается является:
{
u'domain': u'cashquestions.com',
u'_id': ObjectId('573b8e70e1054c00151152f7'),
u'subdomain': u'http://www.',
u'good': [
{
u'link': u'/threads/11005-Cheap-booze!'
},
{
u'link': u'/threads/9445-This-week-s-voucher-codes'
},
{
u'link': u'/threads/9445-This-week-s-voucher-codes_2'
}
]
}
Что ожидается:
{
u'domain': u'cashquestions.com',
u'_id': ObjectId('573b8e70e1054c00151152f7'),
u'subdomain': u'http://www.',
u'good': [
{
u'link': u'/threads/9445-This-week-s-voucher-codes'
},
{
u'link': u'/threads/9445-This-week-s-voucher-codes_2'
}
]
}
Как я могу указать, что только ссылки с crawled
набора к False
возвращается?
Возможный дубликат http://stackoverflow.com/questions/3985214/retrieve-only-the -queried-элемент-в-ан-объект-массив-в-MongoDB-коллекция –