gpt4 book ai didi

node.js - Sails js 一对一填充条件不起作用?

转载 作者:可可西里 更新时间:2023-11-01 10:27:22 24 4
gpt4 key购买 nike

我是 Sails 的新手,我遇到了一对一关联的问题。首先,我有模型用户:

module.exports = {
schema: true,
identity : "User",
tableName: "user",
attributes: {
email: {
type: 'email',
unique: true,
required: true
},

password: {
type: 'string'
},

salt: {
type: 'string'
},

merchant: {
model: 'merchant',
defaultsTo: null
},

removed: {
type: 'boolean',
required: true,
defaultsTo: false
}
}
}

还有我的商家模型:

module.exports = {
schema: true,
identity : "Merchant",
tableName: "merchant",
attributes: {
name: {
type: 'string',
unique: true,
required: true
},

code: {
type: 'string',
unique: true,
required: true
},

security_key: {
type: 'string',
required: true
},

active: {
type: 'boolean',
defaultsTo: false,
required: true
},

user: {
model: 'user'
}
}
}

因此,当我需要查找 merchant.active = true 的记录时,我会编写以下查询:

var findUser = User.find(query).populate('merchant', {active: true});
return findUser;

但它根本不起作用。

任何人有任何想法来正确解决这个问题吗?

附言我的 Sails 版本是:0.11.1。我的数据库是 MongoDB

最佳答案

首先,从关联属性中删除 defaultsTo。我不喜欢这样 :) 我不知道这是否会造成问题,但在文档中我从未见过这一点。

您还需要执行您的查询,而不仅仅是返回它。如果我接受了您模型的声明,那么我可以像这样编写填充查询。

var findUser = User.find(query).populate('merchant', {active: true});

findUser.then(function(user) {
console.log('Your user is ' + user);
}).catch(function(error) {
console.log('Your error is ' + error);
});

关于node.js - Sails js 一对一填充条件不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32507911/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com