sql >> Databáze >  >> NoSQL >> MongoDB

Dotaz MongoDB pro více ObjectID v Array

Můžete použít kombinaci mongodb findOne() a find() kurzorové metody spolu s nativním JavaScriptem map metodu, abyste nejprve získali ID týmu pro konkrétního uživatele (což bude pole řetězců), poté použijte funkci map k namapování pole ID řetězců týmů na pole ObjectId a nakonec se dotazujte na kolekci týmů s výsledným polem jako $in operátorový výraz:

var teams = db.users.findOne({"name": "User1"}).teams;
var obj_ids = teams.map(function (item){ return ObjectId(item)});
db.teams.find({ "_id": { "$in": obj_ids } });

Výstup :

/* 0 */
{
    "_id" : ObjectId("5527a9493ebbe2452666c238"),
    "name" : "Team 1"
}

/* 1 */
{
    "_id" : ObjectId("5527b1be3371e3a827fa602c"),
    "name" : "Team 2"
}



  1. Jak mohu použít operátor LIKE na mongoose?

  2. Meteor pomocí Azure MongoDB

  3. Prvek pole aktualizace dokumentu MongoDB pomocí metody findOneAndUpdate v Javě

  4. Použití Redis jako zprostředkující mezipaměti pro REST API