【发布时间】:2018-12-12 02:44:42
【问题描述】:
我正在使用 Loopback 框架和 Mongodb 开发一个项目。而且我面临着从应用层在 Mongodb 集合中查找文档的问题。它不适用于过滤条件。我总是在 Collection 中获取所有文档。
这是我的模型架构
{
"name": "MyModel",
"plural": "mymodel",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"title": {
"type": "string",
"required": true
},
"description": {
"type": "string",
"required": true
},
"guide_to_make": {
"type": "string",
"required": true
},
"media": {
"type": "object",
"required": true
},
"price": {
"type": "number",
"required": true,
"default": 0
},
"discount": {
"type": "number",
"default": 0
},
"status": {
"type": "number",
"required": true,
"default": 1
},
"user_provider": {
"type": "string",
"required": true
},
"create_at": {
"type": "date",
"required": true,
"defaultFn": "now"
},
"last_update": {
"type": "date",
"required": true,
"defaultFn": "now"
}
},
"validations": [],
"relations": {},
"acls": [
{
"accessType": "WRITE",
"principalType": "ROLE",
"principalId": "$unauthenticated",
"permission": "DENY"
}
],
"methods": {}
}
这是我过去使用过滤器查询以查找与过滤条件匹配的项目的某种方式:
MyModel.find({user_provide:'5ae9e8400e59ae0ecc5ed614'},(err,items)=>{console.log(JSON.stringify(items))});
MyModel.find({user_provide:{'like':'5ae9e8400e59ae0ecc5ed614'}},(err,items)=>{console.log(JSON.stringify(items))});
或者我尝试如下直接使用mongo连接:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function (err, db) {
if (err) throw err;
var dbo = db.db("asiodb");
dbo.collection("Mymodel").find({}, { user_provider: '5ae9e8400e59ae0ecc5ed614' }).toArray(function (err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
但是通过我使用的所有方法,我总是将所有文档都放在 Collection 中。我已经在 Robo3T 中使用 mongo 查询命令测试了过滤条件
db.getCollection('Mymodel').find({user_provider:'5ae9e8400e59ae0ecc5ed614'})
在 Robo3T 中也可以使用 mongo 命令。它可以找到符合条件的项目 我不知道为什么它在我的带有 JS 代码的服务器层上不起作用。
请有人告诉我 JS 代码有什么问题或使用 mongo find 方法的正确语法。
非常感谢!
【问题讨论】:
-
你的键名不正确
user_provide...应该是user_provider -
对不起,是我复制代码到stackoverflow的时候出错了。但在我的程序中,正是 user_provider
标签: javascript mongodb mongoose loopback