MongoDB wählt alle where-Feldwerte in einer Abfrageliste aus

Wie kann man in MongoShell unter SQL erreichen?

Select TableA.* from TableA where TableA.FieldB in (select TableB.FieldValue from TableB)

Mongo doc gibt ein Beispiel für

db.inventory.find( { qty: { $in: [ 5, 15 ] } } )

Ich möchte, dass das Array dynamisch aus einer anderen Abfrage stammt. Ist es möglich?

Meine Frage erweitern

Ich habe eine Sammlung vonbot Namen

Bots-Auflistung

{
    "_id" : ObjectId("53266697c294991f57c36e42"),
    "name" : "teoma"
}

Ich habe eine Sammlung von Nutzerverkehr, in dieser Verkehrssammlung habe ich ein Felduseragent

userTraffic Collection

{
    "_id" : ObjectId("5325ee6efb91c0161cbe7b2c"),
    "hosttype" : "http",
    "useragent" : "Mediapartners-Google",
    "is_crawler" : false,
    "City" : "Mountain View",
    "State" : "CA",
    "Country" : "United States"
}

Ich möchte alle Benutzerverkehrsdokumente auswählen, bei denen dies der Fall istuseragent enthält einen beliebigen Namen vonbot Sammlung

Das habe ich mir ausgedacht

var botArray = db.bots.find({},{name:1, _id:0}).toArray()

db.Sessions.find({
    useragent: {$in: botArray}
    },{ 
        ipaddress:1
        })

Hier glaube ich, dass es tutentspricht dem Vergleich, aber ich möchte es tunwie %% Vergleich

Sobald ich das Ergebnis erhalten habe, möchte ich eine Aktualisierung der Ergebnismenge als durchführenis_crawler = true

Versuchte so etwas, ist nicht hilfreich

db.bots.find().forEach( function(myBot) {
    db.Sessions.find({
        useragent: /myBot.name/
        },{ 
            ipaddress:1
            }) 
     });

Eine andere Möglichkeit zum Durchlaufen der Datensätze, aber keine Übereinstimmung gefunden.

var bots = db.bots.find( {
    $query: {}, 
    $orderby:{
        name:1}
        });
while( bots.hasNext()) {
    var bot = bots.next();
    //print(bot.name);
    var botName = bot.name.toLowerCase();
    print(botName);
     db.Sessions.find({
        useragent: /botName/,
        is_crawler:false
        },{ 
            start_date:1,
            ipaddress:1,
            useragent:1,
            City:1,
            State:1,
            Country:1,
            is_crawler:1,
            _id:0
        })
    }

Antworten auf die Frage(2)

Ihre Antwort auf die Frage