簡體   English   中英

mongodb + nodejs查找並返回文檔中的特定字段

[英]mongodb + nodejs to find and return specific fields in documents

我正在嘗試從mongodb集合 (MongoLab中的3.0.8版)中提取特定的文檔字段 退回的文件必須在日期范圍內。 我的目標是從這些文檔中提取特定字段。 我的nodejs代碼,

var query = {}, operator1 = {}, operator2 = {}, operator3 = {} ;

operator1.$gte = +startDate;
operator2.$lte = +endDate;
operator3.$ne  = 'move';

query['xid'] = 1; // Problem here?
query['date']  = Object.assign(operator1, operator2);
query['type']  = operator3;

console.log(query);

MongoClient.connect(connection, function(err, db) {

    if(err){ 
        res.send(err); 
    } else {
        db.collection('jbone')
          .find(query)
          .toArray(function(err, result){
              console.log(err);
            res.json(result);
            });
    };
});

如果我選擇返回日期范圍內的所有字段,則查詢工作正常。 如果僅選擇字段xid不會獲得任何結果。 根據文檔,我的query對象看起來很明智。 console.log(err)提供:

    { xid: 1,
      date: { '$gte': 20160101, '$lte': 20160107 },
      type: { '$ne': 'move' } }
   null

nullerr

誰能幫助我了解我在做什么錯?

還是用答案將我指向另一個類似的問題?

謝謝

要選擇特定字段,可以按照以下步驟進行

.find( 
  {date: { '$gte': 20160101, '$lte': 20160107 }, type: { '$ne': 'move' }},
  { xid: 1} )

示例代碼如下。

   query['date']  = Object.assign(operator1, operator2);
   query['type']  = operator3;
    db.collection('jbone')
      .find(query, {xid: 1})
      .toArray(function(err, result){
          console.log(err);
        res.json(result);
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM