簡體   English   中英

來自回送問題的mongo查詢

[英]mongo query from loopback issue

我正在嘗試從回送模型中查詢mongo db。 但是我沒有從monogdb得到任何結果

這就是我的文檔在mongodb中的樣子

{"_id":"5b9f8bc51fbd7f248cabe742",
"agentType":"Online-Shopping",
"projectId":"modroid-server",
"labels":["category","price"],
"phrases":["Look for _^ct_ in _^p_ ",
"I need _^ct_ in _^p_",
"can you search for _^ct_ in _^p_"]
}

這是我的數據源文件

{
"db": {
"name": "db",
"connector": "memory"
},
"modroid-server": {
"host": "localhost",
"port": 27017,
"url": "",
"database": "modroid-server",
"password": "",
"name": "modroid-server",
"user": "",
"connector": "mongodb"
  }
}

這是模型配置文件

{
"_meta": {
"sources": [
  "loopback/common/models",
  "loopback/server/models",
  "../common/models",
  "./models"
],
"mixins": [
  "loopback/common/mixins",
  "loopback/server/mixins",
  "../common/mixins",
  "./mixins"
]
},
"User": {
"dataSource": "db"
},
"AccessToken": {
"dataSource": "db",
"public": false
},
"ACL": {
"dataSource": "db",
"public": false
},
"RoleMapping": {
"dataSource": "db",
"public": false,
"options": {
  "strictObjectIDCoercion": true
}
},
 "Role": {
"dataSource": "db",
"public": false
 },
"agent": {
"dataSource": "modroid-server",  // here is my mongodb
"public": true
 }
}

這是我在mongodb中查詢的代碼

module.exports = function (Agent) {
Agent.getDataSource().connector.connect(function (err, db) {
        var collection = db.collection("text-responses");
        collection.find({ "where": { "labels":  ["category", "price"]  } }, function (err, res) { // define whichever query you need
            console.log("collection find res:"+res);
            console.log("collection find err:"+err);

            if(err) {
            cb(err);
            return;
          }
          res.toArray(function (err, realRes) { // this part is crucial
          // otherwise if you try to print res you will get a dump of the db object
            if(err) {
              cb(err);
              return;
            }
            console.log("documnet result:"+realRes);
            console.log("document err:"+err);
          })
      })
    }
    );
}

而當我點擊其余的api時。 我得到這個輸出

collection find res:[object Object]
collection find err:null
documnet result:
document err:null

請在我做錯事的地方幫助我。 幾天以來,我一直陷入困境。

編輯

當我只打印res時,它給了我大量的數據

Cursor {
pool: null,
server: null,
disconnectHandler:
Store {
 s: { storedOps: [], storeOptions: [Object], topology: [Object] },
 length: [Getter] },
bson: BSON {},
ns: 'modroid-server.text-responses',
cmd:
{ find: 'modroid-server.text-responses',
 limit: 0,
 skip: 0,
 query: { where: [Object] },
 slaveOk: true,
 readPreference: ReadPreference { mode: 'primary', tags: undefined } },

看起來text-responses不是模型。

嘗試使用直接模型代理。

module.exports = function (Model) {
  Model.getDataSource().connector.connect(function (err, db) {
   Model.find({ "where": { "labels":  ["category", "price"]  } }, function (err, res) { // define whichever query you need
         console.log("collection find res:"+res);
            console.log("collection find err:"+err);
      })
     });
    }

或按收藏

module.exports = function (Model) {
Model.getDataSource().connector.connect(function (err, db) {
        var collection = db.collection("collection-name"); //use agent
        collection.find({ "where": { "labels":  ["category", "price"]  } }, function (err, res) { // define whichever query you need
            console.log("collection find res:"+res);
            console.log("collection find err:"+err);
      })
    }
    );
}

暫無
暫無

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

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