MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Множество $where заявки в MongoDB

Предполагам, че донякъде сте смесили синтаксиса между JavaScript и MongoDB.
$where се изпълнява от двигателя на JavaScript от страната на сървъра, така че вашият $where изразите трябва да отговарят на синтаксиса на JavaScipt. Например this.chr.no == 5 всъщност е this.chr[index].no == 5 както очаквахте; и една променлива е невъзможно равна на две различни стойности едновременно. Следните кодове за ваша справка:

var judge = function () {
    var unexpect = "X";
    var letter1 = unexpect, letter2 = unexpect;
    for (var i in this.chr) {
        var chr = this.chr[i];
        if (chr.no == 5) {
            letter1 = chr.letter;
        } else if (chr.no == 6) {
            letter2 = chr.letter;
        }
    }
    if (letter1 != letter2 && letter1 != unexpect && letter2 != unexpect) {
        return true;
    }
    return false;
};

db.sss.find({
    "pos": { "$gte": 200000, "$lt": 2000000 },
    "$and" : [{"chr.no" : 5}, {"chr.no" : 6}],    // narrow range further
    "$where": judge
}, {"x_type":1, "sub_name":1, "name":1, "pos":1, "s_type":1, _id:0});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Актуализиране на средна стойност в документ с 2 вложени масива

  2. MongoDB - групов съставен ключ с вложени полета

  3. Подигравателна база данни в node.js?

  4. Предаване на допълнителни буркани към Spark чрез spark-submit

  5. Съобщение за грешка:MongoError:неуспешно удостоверяване чрез URI низ