来自回送问题的mongo查询

时间:2018-09-24 07:09:34

标签: javascript node.js mongodb loopbackjs

我正在尝试从环回模型中查询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 } },

1 个答案:

答案 0 :(得分:1)

看起来text-responses不是模型。

尝试使用Direct Model Agent。

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);
      })
    }
    );
}
相关问题